VBA – Like-Operator
In VBA können Sie zwei Zeichenketten mit dem Like-Operator vergleichen, um die Übereinstimmung der Zeichenketten zu prüfen. In diesem Tutorial lernen Sie, wie Sie diesen Operator mit verschiedenen Mustern verwenden können.
Wenn Sie lernen möchten, wie Sie Zeichenketten in VBA vergleichen können, klicken Sie hier: VBA Zeichenketten vergleichen – StrComp
Wenn Sie lernen möchten, wie Sie Vergleichsoperatoren verwenden können, klicken Sie hier: VBA-Vergleichsoperatoren – Nicht gleich & Mehr
Den Like-Operator zum Vergleich zweier Zeichenfolgen verwenden
Mit dem Like-Operator können wir prüfen, ob eine Zeichenfolge mit einem bestimmten Text beginnt, ihn enthält usw. Standardmäßig vergleicht der Like-Operator Zeichen mit der Binärmethode. Das bedeutet, dass der Operator zwischen Groß- und Kleinschreibung unterscheidet. Wenn Sie die Groß- und Kleinschreibung nicht beachten wollen, müssen Sie Option Compare Text am Anfang Ihres Moduls einfügen. Bei dieser Methode betrachtet der Like-Operator „S“ und „s“ als die gleichen Zeichen. In unseren Beispielen verwenden wir den Standardvergleich unter Berücksichtigung der Groß- und Kleinschreibung.
Wenn die Übereinstimmung besteht, gibt der Like-Operator Wahr als Ergebnis zurück, andernfalls gibt er False zurück.
Zuerst schauen wir uns ein einfaches Beispiel an, bei dem wir prüfen wollen, ob unsere String-Variable mit Mr beginnt. Dazu müssen Sie ein Sternchen (*) an das Ende des zu vergleichenden Textes (Mr*) setzen. Hier ist der Code:
Sub LikeDemo()
Dim strName As String
Dim blnErgebnis As Boolean
strName = "Mr. Michael James"
If strName Like "Mr*" Then
blnErgebnis = True
Else
blnErgebnis = False
End If
End Sub
In diesem Beispiel wollen wir prüfen, ob die Zeichenkette strName mit Mr beginnt und in der Variablen blnErgebnis Wahr oder Falsch zurückgeben.
Zuerst setzen wir den Wert von strName auf Mr. Michael James:
strName = "Mr. Michael James"
Dann verwenden wir den Like-Operator in der If-Anweisung:
If strName Like "Mr*" Then
blnErgebnis = True
Else
blnErgebnis = False
End If
Da strName mit Mr beginnt, gibt das blnErgebnis Wahr zurück:
Abbildung 1. Verwendung des Like-Operators zur Prüfung, ob die Zeichenfolge mit bestimmten Zeichen beginnt
Verwendung des Like-Operators mit verschiedenen Vergleichsmustern
Der Like-Operator kann die Übereinstimmung zweier Zeichenketten auf der Grundlage verschiedener Muster überprüfen. Hier ist die Liste der möglichen Vergleichsmuster:
Code des Musters |
Art der Übereinstimmung |
* |
Vergleicht 0 oder mehr Zeichen |
? |
Vergleicht ein einzelnes Zeichen |
# |
Vergleicht eine einzelne Ziffer |
[chars] |
Vergleicht ein einzelnes Zeichen aus einer Zeichenliste |
[A-Z] |
Vergleicht einen beliebigen Großbuchstaben aus dem Alphabet |
[A-Za-z] |
Vergleicht ein beliebiges Zeichen aus dem Alphabet |
[!chars] |
Vergleicht ein einzelnes Zeichen, schließt eine Zeichenkette aus |
Jetzt können wir sehen, wie man diese Muster im Code verwendet. Hier ist das Beispiel für mehrere Muster:
Übereinstimmung mit einem einzelnen Zeichen:
strText1 = "ABCDE"
If strText1 Like "AB?DE" Then
blnErgebnis1 = True
Else
blnErgebnis1 = False
End If
Übereinstimmung mit einer einzelnen Ziffer:
strText2 = "AB7DE"
If strText2 Like "AB#DE" Then
blnErgebnis2 = True
Else
blnErgebnis2 = False
End If
Übereinstimmungmit einem beliebigen Großbuchstaben aus dem Alphabet:
strText3 = "ABCDE"
If strText3 Like "AB[A-Z]DE" Then
blnErgebnis3 = True
Else
blnErgebnis3 = False
End If
Keine Übereinstimmung mit einem Großbuchstaben des Alphabets:
strText4 = "AB7DE"
If strText4 Like "AB[!A-Z]DE" Then
blnErgebnis4 = True
Else
blnErgebnis4 = False
End If
Übereinstimmung mit einem beliebigen Zeichen aus dem Alphabet (Groß- oder Kleinbuchstaben):
strText5 = "ABcDE"
If strText5 Like "AB[A-Za-z]DE" Then
blnErgebnis5 = True
Else
blnErgebnis5 = False
End If
Wenn Sie den Code ausführen, können Sie sehen, dass der Like-Operator in den blnErgebnis-Variablen bei jedem Vergleich Wahr zurückgibt:
Abbildung 2. Verwendung des Like-Operators mit verschiedenen Vergleichsmustern