VBA – Zeichenfolgen vergleichen – StrComp
In VBA können Sie zwei Zeichenketten mit der Funktion StrComp vergleichen. In diesem Tutorial lernen Sie, wie Sie diese Funktion mit verschiedenen Vergleichsmethoden verwenden können.
Wenn Sie lernen möchten, wie Sie den VBA-Operator Like verwenden, um ungenaue Übereinstimmungen zu vergleichen, klicken Sie hier: VBA-Like-Operator.
Wenn Sie lernen möchten, wie Sie Vergleichsoperatoren verwenden, klicken Sie hier: VBA-Vergleichsoperatoren – Nicht gleich & mehr.
Die Funktion StrComp zum Vergleichen von zwei Zeichenketten verwenden
Die StrComp-Funktion nimmt zwei Zeichenketten und die Vergleichsmethode als Argumente entgegen. Es gibt 3 Vergleichsmethoden:
- vbBinaryCompare: vergleicht zwei Zeichenketten binär (Groß- und Kleinschreibung wird berücksichtigt)
- vbTextCompare: vergleicht zwei Zeichenketten als Text (Groß- und Kleinschreibung wird nicht berücksichtigt)
- vbDatabaseCompare: diese Methode ist nur in Microsoft Access und nicht in VBA verfügbar.
Standardmäßig verwendet die Funktion die binäre Methode. Wenn wir dieses Argument weglassen, wird die Funktion zwischen Groß- und Kleinschreibung unterscheiden.
Die Funktion gibt die folgenden Ergebnisse zurück:
- 0 – wenn die Zeichenketten gleich sind
- -1 – wenn Zeichenkette 1 kleiner als Zeichenkette 2 ist
- 1 – wenn Zeichenkette 1 größer als Zeichenkette 2 ist
- Null – wenn eine der Zeichenketten leer ist.
Hier ist der Beispielcode:
Dim intErgebnis As Integer
intErgebnis = StrComp("Rechner", "Rechner")
In diesem Beispiel wollen wir prüfen, ob die Zeichenketten „Rechner“ und „Rechner“ gleich sind, indem wir die Standardvergleichsmethode (binär) verwenden. Das Ergebnis der Funktion befindet sich in der Variablen intErgebnis. Wie Sie in der Abbildung sehen können, sind beide Zeichenketten gleich, daher hat intErgebnis den Wert 0.
Abbildung 1. Verwendung der Funktion StrComp mit der binären Methode in VBA
Verwendung der StrComp-Funktion mit binärer und textueller Methode
Sie werden nun den Unterschied zwischen der binären und der textuellen Methode sehen. Bei der binären Methode gibt es für jedes Zeichen eine binäre Zahl, so dass Groß- und Kleinbuchstaben bei dieser Methode unterschiedliche Zeichen sind. Bei der textuellen Methode hingegen werden „S“ und „s“ als die gleichen Buchstaben betrachtet. Wenn Sie die Funktion so einstellen wollen, dass sie die Groß- und Kleinschreibung berücksichtigt, müssen Sie das dritte Argument auf vbBinaryCompare setzen. Hier ist der Code:
Dim intErgebnis1 As Integer
Dim intErgebnis2 As Integer
intErgebnis1 = StrComp("Rechner", "RechNer")
intErgebnis2 = StrComp("Rechner", "RechNer", vbTextCompare)
Wir wollen die Zeichenketten „Rechner“ und „RechNer“ mit beiden Methoden vergleichen.
In der Variablen intErgebnis1 erhalten wir den Wert mit der binären Methode, während intErgebnis2 den Wert mit der textuellen Methode erhält. Sie können hier die Werte dieser beiden Variablen sehen:
Abbildung 2. Verwendung der StrComp-Funktion mit binärer und textueller Methode
Der Wert von intErgebnis1 ist 1, was bedeutet, dass bei der binären Methode zwei unterschiedliche Zeichenketten vorliegen. Bei der textuellen Methode sind diese beiden Zeichenketten gleich, so dass der Wert von intErgebnis2 0 ist.