VBA .Find funktioniert nicht - kuriosen Grund gefunden
13.06.2025 05:25:57
Klexy
In der Beispieldatei ist eine Tabelle mit 2 Spalten: GVL und VE
https://www.herber.de/bbs/user/177752.xlsx
Wenn ich unten in den VBA-Direktbereich (Strg+G) folgendes reinschreib, kommt korrekt das Ergebnis "1"
? Rows("1:1").Find(What:="GVL", After:=Range("A1"), LookIn:=xlValues, LookAt:=xlWhole).Column
Wenn ich aber nach der zweiten Spalte suche
? Rows("1:1").Find(What:="VE", After:=Range("A1"), LookIn:=xlValues, LookAt:=xlWhole).Column
kommt eine Fehlermeldung, obwohl alle Prüfverfahren und Vergleiche bestätigen, dass da genau "VE" drin steht. (Ich hab schon mal erlebt, dass ein ö kein ö war, sondern nur wie ein ö ausgeschaut hat, in Wirklickeit aber aus 2 Zeichen bestand, die mit LÄNGE(A1) auch als 2 erkannt wurden - das aber nur am Rande)
Der Grund ist, dass die Spalte A als "Standard" formatiert ist, aber die Spalte B als "Benutzerdefiniert>": _(* #.##0_);_(* (#.##0);_(* "-"??_);_(@_)
Es handelt sich um eine Abfrage aus einem CRM-System. Alle Spalten außer dieser einen sind als Standard formatiert.
Welches der Formatierungs-Elemente das .Find-Problem verursacht, hab ich nicht recherchiert. Und wie diese Formatierung genau funktioniert, versteh ich auch nicht (kein Bedürfnis um diese Uhrzeit da reinzutauchen), aber sie bewirkt, dass eine Zahl mit Tausender-Trennzeichen und auf eine Ganzzahl gerundet dargestellt wird. Und zusätzlich dass sie zwangsweise rechtsbündig und um 0,5 eingerückt dargestellt wird. Was man nicht alles machen kann, um ein einfaches #.##0 zu vermeiden ...
Anzeige