Teilstring in einem String mit VBA prüfen
Schritt-für-Schritt-Anleitung
Um in Excel VBA zu prüfen, ob ein Teilstring in einem String enthalten ist, kannst Du die Select Case-Anweisung in Kombination mit der Funktion InStr verwenden. Hier ist ein einfaches Beispiel, das zeigt, wie Du dies umsetzen kannst:
- Öffne den VBA-Editor in Excel (Alt + F11).
- Erstelle ein neues Modul (Rechtsklick auf "VBAProject", dann "Einfügen" > "Modul").
- Füge den folgenden Code ein:
Sub PrüfenObTeilstring()
Dim test_string As String
test_string = "COAL_A"
Select Case True
Case InStr(test_string, "COAL") > 0
MsgBox "Der Teilstring 'COAL' ist enthalten."
Case InStr(test_string, "Steinkohle") > 0
MsgBox "Der Teilstring 'Steinkohle' ist enthalten."
Case Else
MsgBox "Kein Teilstring gefunden."
End Select
End Sub
- Schließe den Editor und führe das Makro aus (Alt + F8).
Häufige Fehler und Lösungen
-
Fehlerhafte Syntax
- Stelle sicher, dass alle Anführungszeichen und Klammern korrekt gesetzt sind. Ein häufiges Problem ist, dass vergessen wird, die
End Select-Anweisung zu setzen.
-
InStr-Funktion gibt immer 0 zurück
- Überprüfe, ob der zu suchende Teilstring tatsächlich im Hauptstring vorhanden ist. Achte auf Groß- und Kleinschreibung, falls Du eine case-sensitive Suche durchführen möchtest.
-
Variable nicht deklariert
- Wenn Du
Option Explicit in Deinem Modul aktiviert hast, stelle sicher, dass alle Variablen deklariert sind.
Alternative Methoden
- Mit
Like-Operator
Du kannst auch den Like-Operator in VBA verwenden, um Teilstrings zu prüfen. Hier ein Beispiel:
Sub PrüfenMitLike()
Dim test_string As String
test_string = "Steinkohle_B"
If test_string Like "COAL*" Or test_string Like "Steinkohle*" Then
MsgBox "Treffer!"
Else
MsgBox "Kein Treffer."
End If
End Sub
Praktische Beispiele
Hier sind einige praktische Beispiele, wie Du die oben genannten Methoden in verschiedenen Szenarien anwenden kannst:
- Prüfen, ob ein Teilstring in einer Zelle vorhanden ist:
Sub ZellePrüfen()
Dim cell_value As String
cell_value = Range("A1").Value
If InStr(cell_value, "Energie") > 0 Then
MsgBox "Das Wort 'Energie' ist in der Zelle vorhanden."
End If
End Sub
- Verwendung von
Mid und InStr für die Teilstring-Analyse:
Sub TeilstringAnalysieren()
Dim test_string As String
test_string = "Erdgas_GT"
posi = InStr(test_string, "_")
If posi > 0 Then
MsgBox "Der Teilstring bis zum Unterstrich: " & Mid(test_string, 1, posi - 1)
End If
End Sub
Tipps für Profis
- Nutze
Option Explicit, um sicherzustellen, dass alle Variablen deklariert sind und um Fehler frühzeitig zu erkennen.
- Spiele mit der
Like-Syntax, um flexiblere Suchmuster zu erstellen.
- Kombiniere
Select Case mit InStr, um mehrere Bedingungen in einer strukturierten Weise zu überprüfen.
FAQ: Häufige Fragen
1. Wie kann ich prüfen, ob ein String mehrere Teilstrings enthält?
Du kannst mehrere Case-Anweisungen in einer Select Case-Struktur verwenden oder mehrere If-Anweisungen einsetzen.
2. Was ist der Unterschied zwischen InStr und Like?
InStr gibt die Position des Teilstrings zurück, während Like überprüft, ob ein Muster im String vorhanden ist.
3. Wie kann ich die Suche nicht case-sensitive gestalten?
Verwende die Funktion LCase oder UCase, um sowohl den Suchstring als auch den Hauptstring in die gleiche Schreibweise zu konvertieren.