VBA-String-Vergleich - Wie vergleiche ich zwei String-Werte?

Inhaltsverzeichnis

Excel VBA String Vergleich

Um zwei Strings in VBA zu vergleichen, haben wir eine eingebaute Funktion, nämlich " StrComp ". Dies können wir als " String-Vergleich " lesen. Diese Funktion ist nur mit VBA verfügbar und nicht als Arbeitsblattfunktion verfügbar. Es vergleicht zwei beliebige Zeichenfolgen und gibt die Ergebnisse als "Null (0)" zurück, wenn beide Zeichenfolgen übereinstimmen und wenn beide angegebenen Zeichenfolgen nicht übereinstimmen, erhalten wir als Ergebnis "Eins (1)" .

In VBA oder Excel sehen wir uns vielen verschiedenen Szenarien gegenüber. Ein solches Szenario ist das "Vergleichen zweier Zeichenfolgenwerte". In einem normalen Arbeitsblatt können wir diese auf verschiedene Arten ausführen. Wie machen Sie dies in VBA?

Unten finden Sie die Syntax der Funktion „StrComp“.

Erstens sind zwei Argumente recht einfach:

  • Für String 1 müssen wir den ersten Wert angeben, den wir vergleichen, und
  • Für String 2 müssen wir den zweiten Wert angeben, den wir vergleichen.
  • (Vergleichen) Dies ist das optionale Argument der StrComp-Funktion. Dies ist hilfreich, wenn wir den Vergleich zwischen Groß- und Kleinschreibung vergleichen möchten. In diesem Argument ist "Excel" beispielsweise nicht gleich "EXCEL", da bei beiden Wörtern zwischen Groß- und Kleinschreibung unterschieden wird.

Wir können hier drei Werte liefern.

  • Null (0) für " Binärvergleich ", dh "Excel", ist nicht gleich "EXCEL". Für den Vergleich zwischen Groß- und Kleinschreibung können wir 0 angeben.
  • Eine (1) für " Textvergleich ", dh "Excel", entspricht "EXCEL". Dies ist ein nicht zwischen Groß- und Kleinschreibung unterscheidender Vergleich.
  • Zwei (2) dies nur für den Datenbankvergleich.

Die Ergebnisse der Funktion „StrComp“ sind nicht standardmäßig TRUE oder FALSE, sondern variieren. Nachfolgend sind die verschiedenen Ergebnisse der Funktion „StrComp“ aufgeführt.

  • Als Ergebnis erhalten wir "0", wenn die angegebenen Zeichenfolgen übereinstimmen.
  • Wir erhalten "1", wenn die angegebenen Zeichenfolgen nicht übereinstimmen, und im Falle einer numerischen Übereinstimmung erhalten wir 1, wenn Zeichenfolge 1 größer als Zeichenfolge 2 ist.
  • Wir erhalten "-1", wenn die Nummer von String 1 kleiner als die Nummer von String 2 ist.

Wie führe ich einen String-Vergleich in VBA durch?

Beispiel 1

Wir werden " Bangalore " mit der Saite " BANGALORE " vergleichen .

Deklarieren Sie zunächst zwei VBA-Variablen als Zeichenfolge, um zwei Zeichenfolgenwerte zu speichern.

Code:

Sub String_Comparison_Example1 () Dim Value1 As String Dim Value2 As String End Sub

Speichern Sie für diese beiden Variablen zwei Zeichenfolgenwerte.

Code:

Sub String_Comparison_Example1 () Dim Value1 As String Dim Value2 As String Value1 = "Bangalore" Value2 = "BANGALORE" End Sub

Deklarieren Sie nun eine weitere Variable, um das Ergebnis der Funktion „ StrComp “ zu speichern .

Code:

Sub String_Comparison_Example1 () Dim Value1 As String Dim Value2 As String Value1 = "Bangalore" Value2 = "BANGALORE" Dim FinalResult As String End Sub

Öffnen Sie für diese Variable die Funktion „StrComp“.

Code:

Sub String_Comparison_Example1 () Dim Value1 As String Dim Value2 As String Value1 = "Bangalore" Value2 = "BANGALORE" Dim FinalResult As String FinalResult = StrComp (End Sub

Für "String1" und "String2" haben wir bereits Werte über Variablen zugewiesen. Geben Sie daher jeweils Variablennamen ein.

Code:

Sub String_Comparison_Example1 () Dim Value1 As String Dim Value2 As String Value1 = "Bangalore" Value2 = "BANGALORE" Dim FinalResult As String FinalResult = StrComp (Value1, Value2, End Sub

Der letzte Teil der Funktion ist "Vergleichen" für diese Auswahl "vbTextCompare".

Code:

Sub String_Comparison_Example1 () Dim Value1 As String Dim Value2 As String Value1 = "Bangalore" Value2 = "BANGALORE" Dim FinalResult As String FinalResult = StrComp (Value1, Value2, vbTextCompare) End Sub

Zeigen Sie nun die Variable "Endergebnis" im Meldungsfeld in VBA an.

Code:

Sub String_Comparison_Example1 () Dim Value1 As String Dim Value2 As String Value1 = "Bangalore" Value2 = "BANGALORE" Dim FinalResult As String FinalResult = StrComp (Wert1, Value2, vbTextCompare) MsgBox FinalResult End Sub

Ok, lassen Sie uns den Code ausführen und das Ergebnis sehen.

Ausgabe:

Da beide Zeichenfolgen "Bangalore" und "BANGALORE" gleich sind, haben wir das Ergebnis als 0 erhalten, dh als übereinstimmend. Bei beiden Werten wird zwischen Groß- und Kleinschreibung unterschieden, da das Argument als "vbTextCompare" angegeben wurde. Dabei wurde die Übereinstimmung zwischen Groß- und Kleinschreibung ignoriert und nur Werte abgeglichen. Daher sind beide Werte gleich und das Ergebnis ist 0, dh TRUE.

Code:

Sub String_Comparison_Example1 () Dim Value1 As String Dim Value2 As String Value1 = "Bangalore" Value2 = "BANGALORE" Dim FinalResult As String FinalResult = StrComp (Wert1, Value2, vbTextCompare) MsgBox FinalResult End Sub

Beispiel 2

For the same code, we will change the compare method from “vbTextCompare” to “vbBinaryCompare.”

Code:

Sub String_Comparison_Example2() Dim Value1 As String Dim Value2 As String Value1 = "Bangalore" Value2 = "BANGALORE" Dim FinalResult As String FinalResult = StrComp(Value1, Value2, vbBinaryCompare) MsgBox FinalResult End Sub

Now run the code and see the result.

Output:

Even though both the strings are the same, we got the result as 1, i.e., Not Matching because we have applied the compare method as “vbBinaryCompare,” which compares two values as case sensitive.

Example #3

Now we will see how to compare numerical values. For the same code, we will assign different values.

Code:

Sub String_Comparison_Example3() Dim Value1 As String Dim Value2 As String Value1 = 500 Value2 = 500 Dim FinalResult As String FinalResult = StrComp(Value1, Value2, vbBinaryCompare) MsgBox FinalResult End Sub

Both the values are 500, and we will get 0 as a result because both the values are matched.

Output:

Now I will change the Value1 number from 500 to 100.

Code:

Sub String_Comparison_Example3() Dim Value1 As String Dim Value2 As String Value1 = 1000 Value2 = 500 Dim FinalResult As String FinalResult = StrComp(Value1, Value2, vbBinaryCompare) MsgBox FinalResult End Sub

Run the code and see the result.

Output:

We know Value1 & Value2 aren’t the same, but the result is -1 instead of 1 because for numerical comparison when the String 1 value is greater than String 2, we will get this -1.

Code:

Sub String_Comparison_Example3() Dim Value1 As String Dim Value2 As String Value1 = 1000 Value2 = 500 Dim FinalResult As String FinalResult = StrComp(Value1, Value2, vbBinaryCompare) MsgBox FinalResult End Sub

Now I will reverse the values.

Code:

Sub String_Comparison_Example3() Dim Value1 As String Dim Value2 As String Value1 = 500 Value2 = 1000 Dim FinalResult As String FinalResult = StrComp(Value1, Value2, vbBinaryCompare) MsgBox FinalResult End Sub

Run the code and see the result.

Output:

This is not special. If not match, we will get 1 only.

Things to Remember here

  • (Compare) argument of “StrComp” is optional, but in case of case sensitive match, we can utilize this, and the option is “vbBinaryCompare.”
  • The result of numerical values is slightly different in case String 1 is greater than string 2, and the result will be -1.
  • Results are 0 if matched and 1 if not matched.

Recommended Articles

Dies war eine Anleitung zum Vergleich von VBA-Zeichenfolgen. Hier wird erläutert, wie zwei Zeichenfolgenwerte mithilfe der StrComp-Funktion in Excel VBA zusammen mit Beispielen verglichen und eine Excel-Vorlage heruntergeladen werden. Sie können sich auch andere Artikel zu Excel VBA ansehen -

  • Anleitung zu VBA-String-Funktionen
  • VBA String in Array aufteilen
  • VBA-SubString-Methoden
  • VBA-Text

Interessante Beiträge...