VBA: String aus drei Punkten

MickH74

Lieutenant
Registriert
Apr. 2009
Beiträge
591
Hallo liebes Forum,

ich habe einen kleinen Vokabeltrainer für meinen Sohn geschrieben. Dabei wird die Liste der Vokabeln in ein Array geladen und mit der Eingabe eines Form-Textfeldes verglichen. Funktioniert alles gut, nur bei einer Vokabel bin ich über ein Problem gestolpert.
Der String-Vergleich der Eingabe "Are you ...?" mit dem exakt gleichen Wert im Array ergab immer FALSE. Ich konnte das Problem auf die drei Punkte eingrenzen. Der direkte Vergleich zwischen dem String "..." und dem gleichen String im Array ergibt ebenfalls FALSE. Bei 2 oder 4 Punkten aber TRUE.
Wenn man sich die beiden Strings im Debug.Print ausgeben lässt, sieht man auch, dass die drei Punkte aus dem Textfeld anders dargestellt werden als die Ausgabe des Array-Wertes. Auch eine Formatierung z.B. mit LCASE oder CSTR ändert daran nichts.

Könnte mir jemand erklären, was es mit den drei Punkten auf sich hat?

Danke und Gruß,
Mick
 
Vielleicht wird das Symbol "Punkt" als Dezimaltrenner oder Zahlensymbol interpretiert. Ich hab mit VBA schon ewig nichts mehr zu tun gehabt, aber konnte man da nicht auch Zeichen "escapen", damit man per Code klarstellt, dass explizit das ASCII-Zeichen gemeint ist?

Oder ggf. TypeCasten - also mit CStr(NameDesStrings) zuvor den Array (oder Wert einer Variable) nochmal in einen String umwandeln.

Schuss ins Blaue, aber einen Versuch wert :)
 
Kann auch sein, dass Du ein Return im anderen Vergleichsstring hast. auch das hatte ich schon bei VBA .. Damals :)
 
Ja, jeder andere String funktioniert. Nur die 3 Punkte nicht. Der Link von floq0r zeigt das Problem. Ich weiß nur nicht, ob und wie man unterbinden kann, dass die drei Punkte als dieses Unicode-Zeichen gelesen werden und statt dessen eben als drei Punkte.
 
Excel (und wohl alle Office-Programme) haben eine Autokorrektur bei der Eingabe. Wenn du die Vorkabeln händisch eingetippt hattest, dann wurden die 3 Punkte automatisch durch das Unicode-Zeichen ersetzt.
(Zumindest vermute ich jetzt mal, dass die Vokabel in einem Excel-Blatt stehen und du den Zellenbereich in ein Array einliest.)

Mach doch einfach mit STRG+H eine Ersetzung des Unicode-Zeichens durch 3 Punkte.

Falls du zukünftig mit anderen Vorkabel noch öfters mit den 3 Punkten arbeiten willst, dann wäre auch eine Deaktivierung der Autokorrektur für die 3 Punkte möglich. Das geht in den Excel-Optionen im linken Menü unter "Dokumentprüfung" und dort unter dem Button "AutoKorrektur-Optionen...".
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: SonyXP, MickH74 und BAGZZlash
Vielen Dank! Problem ist damit gelöst :-) Ich habe die Autokorrektur für die 3 Punkte gelöscht.
 
  • Gefällt mir
Reaktionen: Darkman.X und floq0r
Zurück
Oben