InStr - Vergleich schlägt fehl (Excel VBA)
Servus zusammen,
ich habe hier ein kleines Excel-VBA Problem:
Ausgangslage:
Wert aus Zelle (x,y) wird in Variable "Wert" gespeichert.
Wenn in "Wert" ein "." (Punkt) vorkommt, dann soll etwas gemacht werden.
Bei einigen Zellen funktioniert es, bei anderen nicht.
Der VBA-Code:
Zellwert: '.......0123
Hier schlägt die InStr-Funktion an.
Zellwert: ...
Hier funktioniert es nicht.
Sowohl "vbTextCompare" und "vbBinaryCompare" habe ich getestet.
Was habe ich da übersehen??
ich habe hier ein kleines Excel-VBA Problem:
Ausgangslage:
Wert aus Zelle (x,y) wird in Variable "Wert" gespeichert.
Wenn in "Wert" ein "." (Punkt) vorkommt, dann soll etwas gemacht werden.
Bei einigen Zellen funktioniert es, bei anderen nicht.
Der VBA-Code:
While (InStr(1, Wert, ".") <> 0)
Zellwert: '.......0123
Hier schlägt die InStr-Funktion an.
Zellwert: ...
Hier funktioniert es nicht.
Sowohl "vbTextCompare" und "vbBinaryCompare" habe ich getestet.
Was habe ich da übersehen??
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 378869
Url: https://administrator.de/contentid/378869
Ausgedruckt am: 24.11.2024 um 05:11 Uhr
2 Kommentare
Neuester Kommentar
Was habe ich da übersehen??
Etwas, was kaum sichtbar ist, aber wenn Du ganz genau hinschaust, siehst Du, das die 3 … anders aussehen, als die vielen .... bei Deiner ersten Zelle die tut.War eine interessante Suche.
Als Erstes: Bei mir tuts mit 3 Punkten auch nicht.
Dann habe ich mal versucht es in VBA mit 3 Punkten zu vergleichen und siehe da, es ist NICHT identisch.
Dann habe ich mal mit LEN mit die Länge des Strings ausgeben lassen:
msgbox wert & "-" & Len(Wert)
...-1
Wie, Länge 1 bei 3 Punkten?
Dann mit ASC mir den ASCII Wert ausgeben lassen, es kommt 133 raus.
Das ASCII Zeichen mit 133 ist die <Horizontal ellipsis>, die aussieht wie 3 Punkte nur etwas enger beisammen.
Hier: Horizontal ellipsis - 3 Punkte
… - ...
Hier sieht mans besser als im Excel.
Das ist sicher die Autokorrektur bei der Eingabe, die aus 3 Punkten das ASCII Zeichen 133 macht.