Find Methode mit mehreren Suchbegriffen in Excel VBA
Schritt-für-Schritt-Anleitung
Um die Find-Methode in Excel VBA zu nutzen, um mehrere Suchbegriffe zu finden, folge diesen Schritten:
-
Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.
-
Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle Einfügen > Modul.
-
Füge den folgenden Code ein:
Sub SucheMitMehrerenBegriffen()
Dim lngZeile As Long
Dim lngSpUmbr As Long
Dim rngZelle As Range
Dim strSearch As String
Dim searchphrase As Variant
lngSpUmbr = Tabelle1.UsedRange.Columns.Count
searchphrase = Split(InputBox("Gib die Suchbegriffe ein, getrennt durch Kommas:"), ",")
strSearch = Trim(searchphrase(0))
On Error Resume Next
Set rngZelle = Tabelle1.UsedRange.Find(strSearch, Tabelle1.Cells(1, lngSpUmbr))
If Not rngZelle Is Nothing Then
lngZeile = rngZelle.Row
' Hier kannst du weitere Suchen hinzufügen
End If
On Error GoTo 0
End Sub
-
Testen der Suche: Führe das Makro aus, indem du F5 drückst und gib die Suchbegriffe in dem Format PKW, Auto ein.
Häufige Fehler und Lösungen
- Fehler: "Objekt nicht gefunden": Dies kann passieren, wenn dein Suchbegriff nicht in den Daten vorhanden ist. Überprüfe die Schreibweise und die Groß-/Kleinschreibung.
- Lösung: Verwende
On Error Resume Next: Damit kannst du mögliche Fehler abfangen, ohne dass das Skript stoppt.
Alternative Methoden
Wenn die Find-Methode nicht die gewünschten Ergebnisse liefert oder du eine komplexere Suche benötigst, kannst du folgende Alternativen in Betracht ziehen:
- Autofilter: Nutze den Autofilter, um die Daten basierend auf mehreren Kriterien anzuzeigen. Dies kann oft schneller und einfacher sein.
-
Hilfsspalten: Erstelle eine Hilfsspalte, die die Suchkriterien kombiniert. Zum Beispiel:
=WENN(UND(ISTZAHL(SUCHEN($C$1;A1));ISTZAHL(SUCHEN($C$2;A1)));"WAHR";"FALSCH")
Praktische Beispiele
Hier ist ein Beispiel, wie du die Find-Methode mit mehreren Suchbegriffen in einer Tabelle umsetzen kannst:
- Tabelle aufbauen: Erstelle eine Tabelle mit Fahrzeugen in Spalte A und B.
- Suchbegriff eingeben: Setze die Suchbegriffe in die Zellen C1 und C2.
- Formel in Hilfsspalte: Verwende die oben genannte Formel in Spalte C, um zu prüfen, ob beide Begriffe in einer Zeile vorhanden sind.
Wenn du nun die Find-Methode verwendest, um nach "PKW" und "Auto" zu suchen, wird nur die Zeile angezeigt, die beide Begriffe enthält.
Tipps für Profis
- Verwende das
UsedRange: Die UsedRange-Eigenschaft ist nützlich, um nur im aktiven Bereich zu suchen und die Effizienz zu erhöhen.
-
Optimierung der Suche: Um mehrere Ergebnisse zu finden, kannst du die Do While-Schleife verwenden, um alle Vorkommen zu durchlaufen.
Do While Not rngZelle Is Nothing
' Aktionen für jedes gefundene Ergebnis
Set rngZelle = Tabelle1.UsedRange.FindNext(rngZelle)
Loop
FAQ: Häufige Fragen
1. Kann ich die Find-Methode für mehrere Zellen gleichzeitig verwenden?
Nein, die Find-Methode sucht nur in einzelnen Zellen. Du musst eine Hilfsspalte oder den Autofilter verwenden, um mehrere Zellen zu kombinieren.
2. Wie kann ich die Suche in einem bestimmten Bereich einschränken?
Gib den Bereich, in dem gesucht werden soll, explizit an, z.B. Set rngZelle = Tabelle1.Range("A1:B10").Find(strSearch).
3. Funktioniert dies in allen Excel-Versionen?
Ja, die Find-Methode und die beschriebenen Techniken sind in den gängigen Excel-Versionen verfügbar, einschließlich Excel 2010 und höher.