mrcount
Goto Top

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:
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??

Content-Key: 378869

Url: https://administrator.de/contentid/378869

Printed on: April 19, 2024 at 20:04 o'clock

Member: AndreasHoster
Solution AndreasHoster Jul 02, 2018 updated at 08:29:54 (UTC)
Goto Top
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)  
Ergebnis:
...-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.
Member: MrCount
MrCount Jul 02, 2018 at 08:38:04 (UTC)
Goto Top
Zitat von @AndreasHoster:

Das ist sicher die Autokorrektur bei der Eingabe, die aus 3 Punkten das ASCII Zeichen 133 macht.

Haha, ja... danke!!!

Bei einem
If Wert = Chr(133)
springt er an.

Vielen Dank!!
Mein Montag ist (vorerst) gerettet ... :D