VBA StrComp

Excel VBA StrComp-Funktion

VBA StrComp ist eine integrierte Funktion, mit der verglichen wird, ob die beiden Zeichenfolgenwerte gleich sind oder nicht. Die Ergebnisse sind jedoch nicht wie im Arbeitsblatt auf TRUE oder FALSE eingestellt, sondern unterscheiden sich.

Bevor wir uns die Ergebnisse ansehen, möchte ich Ihnen zunächst die Syntax der StrComp-Funktion zeigen.

  • String 1: String 1 ist der erste String oder Wert, den wir vergleichen.
  • String 2: String 2 ist der zweite String oder Wert, den wir mit String 1 vergleichen .
  • Vergleichen Sie: Wir können hier drei Optionen anbieten.
      • 0 = Binärvergleich. Dies führt Groß- und Kleinschreibung durch. Zum Beispiel ist "Hallo" nicht gleich "HALLO", da beide Wörter unterschiedlich sind. Dies ist der Standardwert, wenn Sie diesen Parameter ignorieren. vbBinaryCompare
      • 1 = Textvergleich. Diese Option führt die Berechnungen ohne Berücksichtigung der Groß- und Kleinschreibung durch. Zum Beispiel ist "Hallo" gleich dem "HALLO" -Ereignis, obwohl beide Wörter unterschiedlich sind. vbTextCompare
      • 2 = Zugriff vergleichen. Dies führt einen Datenbankvergleich durch.

Ergebnisse der StrComp-Funktion (String Comparison)

Wie ich bereits sagte, erhalten wir beim Vergleich zweier Werte im Arbeitsblatt das Ergebnis entweder TRUE oder FALSE. Bei VBA-Zeichenfolgenvergleichsfunktionen sind die Ergebnisse jedoch nicht dieselben.

  • Wir erhalten Null (0), wenn String 1 gleich String 2 ist.
  • Wir erhalten eins (1), wenn der Wert von String 1 größer als der Wert von String 2 ist .
  • Wir erhalten minus eins (-1), wenn der Wert von String 1 kleiner als String 2 ist
  • Wir erhalten NULL, wenn der Wert für String 1 oder String 2 NULL ist.

Beispiele für die Verwendung der VBA StrComp-Funktion

Sie können diese VBA StrComp Excel-Vorlage hier herunterladen - VBA StrComp Excel-Vorlage

Beispiel 1

Beginnen wir mit einem einfachen Beispiel. Zum Beispiel werden wir zwei Werte vergleichen, nämlich "Excel VBA" und "Excel VBA".

Code:

 Sub StrComp_Example1 () Dim FirstValue As String 'Zum Speichern von String 1-Wert Dim SecondValue As String' Zum Speichern von String 2-Wert Dim Result As String 'Zum Speichern des Ergebnisses der StrComp-Formel FirstValue = "Excel VBA"' Weisen Sie den String 1-Wert SecondValue = zu "Excel VBA" 'Weisen Sie den Wert für String 2 zu. Ergebnis = StrComp (FirstValue, SecondValue, vbBinaryCompare)' Anwenden der StrComp-Funktion MsgBox-Ergebnis 'Zeigen Sie das Ergebnis im Meldungsfeld End Sub an 

Wenn ich diesen Code ausführe, erhalten wir als Ergebnis Null (0), da beide Werte für String 1 und String 2 gleich sind.

Beispiel 2

Jetzt werde ich die Fälle von zwei Wörtern ändern.

Zeichenfolge 1 = Excel Vba

Zeichenfolge 2 = Excel VBA

Code:

 Sub StrComp_Example2 () Dim FirstValue As String 'Zum Speichern von String 1-Wert Dim SecondValue As String' Zum Speichern von String 2-Wert Dim Result As String 'Zum Speichern des Ergebnisses der StrComp-Formel FirstValue = "Excel Vba"' Weisen Sie den String 1-Wert SecondValue = zu "Excel VBA" 'Weisen Sie den Wert für String 2 zu. Ergebnis = StrComp (FirstValue, SecondValue, vbBinaryCompare)' Anwenden der StrComp-Funktion MsgBox-Ergebnis 'Zeigen Sie das Ergebnis im Meldungsfeld End Sub an 

Wenn ich diesen Code ausführe, erhalten wir 1, da das Compare-Argument als " vbBinaryCompare" angegeben wird und nach Groß- und Kleinschreibung gesucht wird.

Jetzt werde ich die Vergleichsoption von " vbBinaryCompare" in " vbTextCompare" ändern.

Code:

 Sub StrComp_Example3 () Dim FirstValue As String 'Zum Speichern von String 1-Wert Dim SecondValue As String' Zum Speichern von String 2-Wert Dim Result As String 'Zum Speichern des Ergebnisses der StrComp-Formel FirstValue = "Excel Vba"' Weisen Sie den String 1-Wert SecondValue = zu "Excel VBA" 'Weisen Sie den Wert für String 2 zu. Ergebnis = StrComp (FirstValue, SecondValue, vbTextCompare)' Anwenden der StrComp-Funktion MsgBox-Ergebnis 'Zeigen Sie das Ergebnis im Meldungsfeld End Sub an 

Mit diesem Vergleich erhalten wir Null (0), da vbaTextCompare Groß- und Kleinschreibung ignoriert.

Beispiel 3

Fallstudie von VBA StrComp mit IF-Bedingung

Angenommen, Sie haben die Daten wie im folgenden Bild.

Wir müssen String 1 mit String 2 vergleichen und das Ergebnis als "Exact" erhalten, wenn beide gleich sind, andernfalls sollte das Ergebnis "Not Exact" sein.

Der folgende Code erledigt die Arbeit für uns.

Code:

 Sub StrComp_Example4 () Dim Ergebnis als String Dim I als Ganzzahl Für i = 2 bis 6 Ergebnis = StrComp (Zellen (i, 1) .Wert, Zellen (i, 2) .Wert) Wenn Ergebnis = 0, dann Zellen (i, 3 ) .Value = "Exact" Else Cells (i, 3) .Value = "Not Exact" End If Next i End Sub 

Wenn ich den obigen VBA-Code in Excel ausführe, erhalten wir das folgende Ergebnis.

Wenn Sie sich die C4-Zelle ansehen, sind String 1 und String 2 identisch, bei den Zeichen wird jedoch zwischen Groß- und Kleinschreibung unterschieden, sodass das Ergebnis "Nicht genau" lautet. Um dieses Problem zu beheben, müssen wir Compare als vbTextCompare bereitstellen.

Unten finden Sie den geänderten Code, um das Ergebnis als "Exakt" für die C4-Zelle zu erhalten.

Code:

 Sub StrComp_Example4 () Dim Ergebnis als String Dim I als Ganzzahl Für i = 2 bis 6 Ergebnis = StrComp (Zellen (i, 1) .Wert, Zellen (i, 2) .Wert, vbTextCompare) Wenn Ergebnis = 0, dann Zellen (i , 3) .Value = "Exakte" andere Zellen (i, 3) .Value = "Nicht genau" End If Next i End Sub 

Dieser Code gibt das folgende Ergebnis zurück.