Strings im Array suchen und Treffer anzeigen
Schritt-für-Schritt-Anleitung
- Öffne den VBA-Editor: Drücke
ALT + F11 in Excel.
- Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste im Projektfenster, wähle
Einfügen > Modul.
- Kopiere den folgenden Code in das Modul:
Private Sub CommandButton_suchen_Click()
Dim arr As Variant
Dim tbsuch As String
Dim i As Integer
Dim TrefferListe As String
arr = Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember")
tbsuch = TextBox_suchen.Value
For i = LBound(arr) To UBound(arr)
If Not Worksheets(arr(i)).Cells.Find(What:=tbsuch, LookAt:=xlPart) Is Nothing Then
TrefferListe = TrefferListe & arr(i) & vbNewLine
End If
Next i
If TrefferListe <> "" Then
MsgBox "Gefundene Treffer in: " & vbNewLine & TrefferListe
Else
MsgBox "Keine Treffer gefunden."
End If
End Sub
- Füge eine TextBox und einen Button in dein Excel-Arbeitsblatt ein: Du kannst dies über die Entwicklertools tun.
- Teste die Funktion: Gib einen Suchbegriff in die TextBox ein und klicke auf den Button.
Häufige Fehler und Lösungen
- Fehler: "Objekt nicht gefunden": Stelle sicher, dass die Blattnamen in deinem Array korrekt sind.
- Treffer werden nicht angezeigt: Überprüfe, ob der Suchbegriff tatsächlich in den angegebenen Blättern existiert.
- MsgBox zeigt leere Werte an: Stelle sicher, dass die
Find-Methode nicht auf Nothing überprüft wird. Verwende LookAt:=xlPart, um Teilübereinstimmungen zu finden.
Alternative Methoden
Eine weitere Möglichkeit, um nach Strings in einem Array zu suchen, ist die Verwendung einer Funktion zur Zählung von Übereinstimmungen. Hier ist ein Beispiel:
Function CountMatches(ByVal searchString As String, ByVal monthArray As Variant) As Integer
Dim count As Integer
count = 0
Dim i As Integer
For i = LBound(monthArray) To UBound(monthArray)
If Not Worksheets(monthArray(i)).Cells.Find(What:=searchString, LookAt:=xlPart) Is Nothing Then
count = count + 1
End If
Next i
CountMatches = count
End Function
Mit dieser Funktion kannst du die Anzahl der Treffer für einen bestimmten Suchbegriff ermitteln und diese in deiner MsgBox anzeigen.
Praktische Beispiele
Angenommen, du möchtest nach dem Begriff "Miete" suchen. Du kannst den Code einfach anpassen:
tbsuch = "Miete"
Wenn du dann die Schaltfläche drückst, wird eine Liste aller Blätter angezeigt, in denen "Miete" gefunden wurde.
Tipps für Profis
FAQ: Häufige Fragen
1. Wie kann ich die Suche auf bestimmte Blätter einschränken?
Du kannst das Array arr anpassen, um nur die Blätter zu durchsuchen, die dich interessieren.
2. Was tun, wenn ich keine Ergebnisse bekomme?
Überprüfe, ob der gesuchte Text exakt in den Blättern vorhanden ist und ob du die richtigen Blätter in deinem Array angegeben hast.
3. Kann ich auch nach mehreren Begriffen suchen?
Ja, du kannst das Array so anpassen, dass es mehrere Suchbegriffe enthält und die Ergebnisse entsprechend anpassen.
4. Welche Excel-Version benötige ich für diese VBA-Codes?
Diese Codes funktionieren in Excel Version 2007 und höher, die VBA unterstützen.