Jämförelse av VBA-strängar - Hur man jämför två strängvärden?

Innehållsförteckning

Excel VBA-strängjämförelse

För att jämföra två strängar i VBA har vi en inbyggd funktion, dvs. ” StrComp ”. Detta kan vi läsa som " Strängjämförelse ", den här funktionen är endast tillgänglig med VBA och är inte tillgänglig som en kalkylfunktion. Den jämför två strängar och returnerar resultaten som "Noll (0)" om båda strängarna matchar och om båda levererade strängarna inte matchar skulle vi få "En (1)" som resultat.

I VBA eller excel står vi inför många olika scenarier. Ett sådant scenario är att "jämföra två strängvärden." I ett vanligt kalkylblad kan vi göra dessa flera sätt, men i VBA, hur gör du det?

Nedan är syntaxen för "StrComp" -funktionen.

För det första är två argument ganska enkla,

  • för sträng 1 måste vi ange vad det första värdet vi jämför och
  • för sträng 2 måste vi ange det andra värdet vi jämför.
  • (Jämför) detta är det valfria argumentet för StrComp-funktionen. Detta är användbart när vi vill jämföra skiftlägeskänslig jämförelse. Till exempel, i detta argument är "Excel" inte lika med "EXCEL" eftersom båda dessa ord är skiftlägeskänsliga.

Vi kan ange tre värden här.

  • Noll (0) för " Binär jämförelse ", dvs. "Excel", är inte lika med "EXCEL." För skiftlägeskänslig jämförelse kan vi leverera 0.
  • En (1) för " Textjämförelse ", dvs. "Excel", är lika med "EXCEL." Detta är en icke-skiftlägeskänslig jämförelse.
  • Två (2) endast för databasjämförelse.

Resultaten av “StrComp” -funktionen är inte SANT eller FALSK utan varierar. Nedan visas de olika resultaten av “StrComp” -funktionen.

  • Vi får "0" som resultat om de medföljande strängarna matchar.
  • Vi får "1" om de medföljande strängarna inte matchar, och vid numerisk matchning får vi 1 om sträng 1 är större än sträng 2.
  • Vi får “-1” om sträng 1-talet är mindre än sträng 2-talet.

Hur utför jag strängjämförelse i VBA?

Exempel 1

Vi matchar " Bangalore " mot strängen " BANGALORE ."

Först förklara två VBA-variabler som strängen för att lagra två strängvärden.

Koda:

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

För dessa två variabler, lagra två strängvärden.

Koda:

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

Förklara nu ytterligare en variabel för att lagra resultatet av " StrComp " -funktionen.

Koda:

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

Öppna "StrComp" -funktionen för denna variabel.

Koda:

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" och "String2" har vi redan tilldelat värden via variabler, så ange variabelnamn, respektive.

Koda:

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

Den sista delen av funktionen är "Jämför" för detta val "vbTextCompare."

Koda:

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

Visa nu variabeln "Slutresultat" i meddelandefältet i VBA.

Koda:

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) MsgBox FinalResult End Sub Sub

Ok, låt oss köra koden och se resultatet.

Produktion:

Eftersom båda strängarna "Bangalore" och "BANGALORE" är desamma fick vi resultatet som 0, dvs matchning. Båda värdena är skiftlägeskänsliga eftersom vi har angett argumentet som “vbTextCompare”, det har ignorerat skiftlägeskänslig matchning och matchade endast värden, så båda värdena är desamma och resultatet är 0, dvs SANT.

Koda:

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) MsgBox FinalResult End Sub Sub

Exempel 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

Detta har varit en guide till VBA-strängjämförelse. Här diskuterar vi hur man jämför två strängvärden med hjälp av StrComp-funktionen i excel VBA tillsammans med exempel och laddar ner en excel-mall. Du kan också titta på andra artiklar relaterade till Excel VBA -

  • Guide till VBA-strängfunktioner
  • VBA Split String in Array
  • VBA SubString Methods
  • VBA-text

Intressanta artiklar...