In VBA können Sie zwei Strings mit dem vergleichen StrComp Funktion. In diesem Tutorial erfahren Sie, wie Sie diese Funktion mit verschiedenen Vergleichsmethoden verwenden.
Wenn Sie erfahren möchten, wie Sie den VBA-ähnlichen Operator verwenden, um ungenaue Übereinstimmungen zu vergleichen, klicken Sie hier: VBA-ähnlicher Operator.
Wenn Sie lernen möchten, wie man Vergleichsoperatoren verwendet, klicken Sie hier: VBA-Vergleichsoperatoren - Nicht gleich & Mehr
Verwenden der StrComp-Funktion zum Vergleichen von zwei Strings
Die StrComp Die Funktion nimmt zwei Zeichenfolgen und eine Vergleichsmethode als Argumente an. Es gibt 3 Vergleichsmethoden:
- vbBinaryVergleichen - vergleicht zwei Strings binär (Groß-/Kleinschreibung beachten);
- vbTextVergleichen - vergleicht zwei Strings als Texte (Groß-/Kleinschreibung wird nicht beachtet);
- vbDatenbankVergleichen - 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, unterscheidet die Funktion die Groß-/Kleinschreibung.
Die Funktion gibt folgende Ergebnisse zurück:
- 0 - wenn Zeichenfolgen gleich sind;
- -1 - wenn Zeichenfolge 1 kleiner als Zeichenfolge 2 ist;
- 1 - wenn Zeichenfolge 1 größer als Zeichenfolge 2 ist;
- Null - wenn einer der Strings leer ist.
Hier ist der Beispielcode:
123 | Dim intResult As IntegerintResult = StrComp("Computer", "Computer") |
In diesem Beispiel wollen wir prüfen, ob Zeichenfolgen "Rechner" und "Rechner" gleich sind, unter Verwendung der Standardvergleichsmethode (binär). Das Ergebnis der Funktion ist in der intResult Variable. Wie Sie im Bild sehen können, sind beide Strings gleich, daher die intResult hat den Wert 0.
Bild 1. Verwendung der StrComp-Funktion mit der binären Methode in VBA
Verwenden der StrComp-Funktion mit binärer und textueller Methode
Sie werden jetzt den Unterschied zwischen der Verwendung der binären und der textuellen Methode sehen. Die Binärmethode hat für jedes Zeichen eine Binärzahl, daher sind Groß- und Kleinschreibung in dieser Methode unterschiedliche Zeichen. Auf der anderen Seite betrachtet die Textmethode „S“ und „s“ als dieselben Buchstaben. Wenn Sie die Groß-/Kleinschreibung der Funktion nicht berücksichtigen möchten, müssen Sie das dritte Argument auf setzen vbBinaryVergleichen. Hier ist der Code:
123456 | Dim intResult1 As IntegerDim intResult2 As IntegerintResult1 = StrComp("Computer", "Computer")intResult2 = StrComp("Computer", "Computer", vbTextCompare) |
Wir wollen Strings vergleichen "Rechner" und "Rechner", mit beiden Methoden.
In der Variablen intResult1, erhalten wir den Wert mit der binären Methode, während die intResult2 erhält den Wert mit der textuellen Methode. Sie können die Werte dieser beiden Variablen sehen:
Bild 2. Verwendung der StrComp-Funktion mit binärer und textueller Methode
Der Wert von intResult1 ist 1, was bedeutet, dass sich zwei Strings für die binäre Methode unterscheiden. Bei der textuellen Methode sind diese beiden Strings gleich, daher ist der Wert von intResult2 ist 0.