VBA .Find-Befehl: Werte finden trotz benutzerdefinierter Formatierung
Schritt-für-Schritt-Anleitung
- Öffne dein Excel-Dokument und wechsle in die Visual Basic for Applications (VBA) Umgebung.
- Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeinDokument.xlsx)" und wähle "Einfügen" > "Modul".
- Nutze den .Find-Befehl zum Suchen von Werten in Zellen. Beispiel:
Dim gesuchterWert As Range
Set gesuchterWert = ActiveSheet.Cells.Find(What:="Hallo", LookIn:=xlValues)
- Falls die Zellen benutzerdefiniert mit ";;;" formatiert sind, ändere den Befehl wie folgt:
Set gesuchterWert = ActiveSheet.Cells.Find(What:="Hallo", LookIn:=xlFormulas, SearchFormat:=False)
- Teste dein Skript und überprüfe, ob der gesuchte Wert gefunden wird.
Häufige Fehler und Lösungen
-
Excel Suche findet Wert nicht, obwohl vorhanden: Dies kann geschehen, wenn die Zellen so formatiert sind, dass der Inhalt nicht angezeigt wird. Stelle sicher, dass du den LookIn
-Parameter auf xlFormulas
setzt.
-
Verwendung von SearchFormat: Wenn du SearchFormat:=False
angibst und immer noch nicht fündig wirst, überprüfe, ob der Formatierungsfilter korrekt eingestellt ist.
Alternative Methoden
- VBA .Find mit LookIn:=xlFormulas: Diese Methode wird empfohlen, wenn du mit Zellen arbeitest, die spezielle Formatierungen haben.
- Verwendung von AutoFilter: Eine weitere Möglichkeit, Werte zu finden, ist die Verwendung von AutoFilter, um die gewünschten Daten sichtbar zu machen.
Praktische Beispiele
Hier ist ein einfaches Beispiel, das den .Find
-Befehl in einer realen Anwendung zeigt:
Sub SucheNachWert()
Dim Suchwert As String
Dim gefundenerWert As Range
Suchwert = "Hallo"
Set gefundenerWert = ActiveSheet.Cells.Find(What:=Suchwert, LookIn:=xlFormulas, SearchFormat:=False)
If Not gefundenerWert Is Nothing Then
MsgBox "Wert gefunden in Zelle: " & gefundenerWert.Address
Else
MsgBox "Wert nicht gefunden."
End If
End Sub
Dieses Skript sucht nach dem Wert "Hallo" und gibt die Adresse der Zelle aus, wenn der Wert gefunden wird.
Tipps für Profis
FAQ: Häufige Fragen
1. Warum findet der .Find-Befehl keinen Wert?
Das kann passieren, wenn die Zelle mit einer benutzerdefinierten Formatierung, wie ";;;", versehen ist. In solchen Fällen sollte LookIn:=xlFormulas
verwendet werden.
2. Was ist der Unterschied zwischen LookIn:=xlValues und LookIn:=xlFormulas?
xlValues
sucht nach den sichtbaren Werten in den Zellen, während xlFormulas
auch die Formelwerte in den Zellen berücksichtigt, was wichtig ist, wenn die Zellen speziell formatiert sind.