Mehrere Begriffe unter .Find in Excel VBA
Schritt-für-Schritt-Anleitung
Um in Excel mit VBA mehrere Begriffe gleichzeitig zu suchen, kannst du die folgende Schritt-für-Schritt-Anleitung verwenden:
-
Ö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.xlsm)" und wähle Einfügen > Modul
.
-
Füge den Code ein: Kopiere den folgenden Code in das Modul:
Dim Result As Range
Set Result = fncMultipleFind("Berlin", "Frankfurt", "Stuttgart")
If Not Result Is Nothing Then
'Tu was...
End If
Private Function fncMultipleFind(ParamArray ppavntNames() As Variant) As Range
Dim objCell As Range
Dim ialngIndex As Long
For ialngIndex = 0 To UBound(ppavntNames)
Set objCell = xlSheet.Cells(y, 16).Find(what:=ppavntNames(ialngIndex))
If Not objCell Is Nothing Then
Set fncMultipleFind = objCell
Exit For
End If
Next
End Function
-
Passe die Suchbegriffe an: Ersetze "Berlin", "Frankfurt" und "Stuttgart" mit den Begriffen, die du suchen möchtest.
-
Führe den Code aus: Du kannst den Code jetzt ausführen, um nach den angegebenen Begriffen in der 16. Spalte zu suchen.
Häufige Fehler und Lösungen
Alternative Methoden
Falls du eine größere Anzahl von Wörtern suchen möchtest, kannst du die Suchbegriffe auch in ein Array einlesen. Hier ist ein Beispiel:
Dim SearchTerms As Variant
SearchTerms = Array("Berlin", "Frankfurt", "Stuttgart", "München")
Dim Result As Range
Set Result = fncMultipleFind(SearchTerms)
Hierbei wird die Funktion fncMultipleFind
so angepasst, dass sie ein Array als Parameter akzeptiert.
Praktische Beispiele
Angenommen, du möchtest nach mehreren Städten in einer Liste suchen. Du kannst den Code wie folgt anpassen:
Dim Result As Range
Dim Cities As Variant
Cities = Array("Berlin", "Frankfurt", "Stuttgart", "Hamburg", "München")
Set Result = fncMultipleFind(Cities)
If Not Result Is Nothing Then
MsgBox "Stadt gefunden: " & Result.Value
Else
MsgBox "Keine Stadt gefunden."
End If
Tipps für Profis
-
Optimierung: Wenn du viele Suchbegriffe hast, überlege, ob du die Suchbegriffe in einer Excel-Tabelle speicherst und diese dann in dein Array einliest. Das ermöglicht eine einfachere Wartung und Anpassung.
-
Debugging: Verwende Debug.Print
innerhalb der Schleife, um zu überprüfen, welche Suchbegriffe getestet werden, falls du Probleme hast.
FAQ: Häufige Fragen
1. Kann ich auch Wildcards in der Suche verwenden?
Ja, du kannst Wildcards wie *
oder ?
verwenden. Zum Beispiel: .Find(what:="Ber*")
findet alle Begriffe, die mit "Ber" beginnen.
2. Funktioniert das auch in Excel 365?
Ja, die beschriebenen Methoden funktionieren in allen aktuellen Excel-Versionen, einschließlich Excel 365.
3. Wie kann ich die Suche auf mehrere Spalten ausweiten?
Du kannst die Find
-Methode in einer Schleife für verschiedene Spalten aufrufen oder den Bereich anpassen, in dem gesucht wird.