Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Mehrere Begriffe unter .Find

Mehrere Begriffe unter .Find
30.04.2018 16:18:05
Tobi
Hi,
ich suche mit .Find(what:="Berlin") nach einem Wort, wenn das Wort in der Spalte 16 vorkommt, ist die if Anweisung Wahr.
Funktioniert ohne Probleme.
Nun möchte ich aber nach mehreren Wörtern suchen und zwar als ODER.
Also ungefähr sowas:
.Find(what:="Berlin" OR "Frankfurt" OR Stuttgart)
Leider funktioniert es so natürlich nicht.
Habt ihr vielleicht eine Ahnung?
Danke euch.

Set Result = xlSheet.Cells(y, 16).Find(what:="Berlin")
If Not Result Is Nothing Then

'Tu was...
End If
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrere Begriffe unter .Find
30.04.2018 16:26:28
Mullit
Hallo,
eine Möglichkeit wäre triple-Find...
Dim Result1 As Range, Result2 As Range, Result3 As Range
Set Result1 = xlSheet.Cells(y, 16).Find(what:="Berlin")
Set Result2 = xlSheet.Cells(y, 16).Find(what:="Frankfurt")
Set Result3 = xlSheet.Cells(y, 16).Find(what:="Stuttgart")
If Not (Result1 Is Nothing And Result2 Is Nothing And Result3 Is Nothing) Then
'Tu was...
End If

Gruß, Mullit
Anzeige
AW: Mehrere Begriffe unter .Find
30.04.2018 16:35:46
Tobi
Hi, zunächst Danke für die schnelle Antwort.
Das wäre natürlich eine Möglichkeit.
Was ich allerdings vergessen habe zu erwähnen ist, dass es nicht bei 3 Wörtern bleiben wird, sondern eher mehrere hundert.
Wenn es möglich ist, würde ich die Wörter lieber unter einem "Result" suchen, damit ich keine riesige If Anweisung mit hunderten Results vergleichen muss.
Anzeige
AW: Mehrere Begriffe unter .Find
30.04.2018 16:48:57
Mullit
Hallo,
hmm ja, dazu müsste man vielleicht mal wissen,was in der If-Anweisung mit der Fundstelle weiter passieren soll, wenn die Menge zu groß wird liest Du entweder alles in Variant-Arrays ein und durchsuchst diese, oder Du schreibst Dir noch mit Find eine eigene Function in der Art:
Dim Result As Range
Set Result = fncMultipleFind("Berlin", "Frankfurt", "Stuttgart", "München")
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
Set objCell = Nothing
Exit For
End If
Next
End Function

Gruß, Mullit
Anzeige
AW: Mehrere Begriffe unter .Find
30.04.2018 16:52:37
Tobi
Danke sehr, werde ich mal versuchen.
;
Anzeige
Anzeige

Infobox / Tutorial

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:

  1. Öffne den VBA-Editor: Drücke Alt + F11, um den VBA-Editor zu öffnen.

  2. Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsm)" und wähle Einfügen > Modul.

  3. 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
  4. Passe die Suchbegriffe an: Ersetze "Berlin", "Frankfurt" und "Stuttgart" mit den Begriffen, die du suchen möchtest.

  5. 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

  • Fehler: "Object variable or With block variable not set"

    • Lösung: Stelle sicher, dass die Variable xlSheet korrekt gesetzt ist und auf das aktive Arbeitsblatt verweist.
  • Fehler: Keine Ergebnisse gefunden

    • Lösung: Überprüfe, ob die Suchbegriffe tatsächlich in der angegebenen Spalte vorhanden sind und dass die Schreibweise korrekt ist.

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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige