Primerjava nizov VBA - Kako primerjati dve nizovni vrednosti?

Primerjava nizov Excel VBA

Za primerjavo dveh nizov v VBA imamo vgrajeno funkcijo, tj. " StrComp ". To lahko preberemo kot » Primerjava nizov «, ta funkcija je na voljo samo z VBA in ni na voljo kot funkcija delovnega lista. Primerja katera koli dva niza in vrne rezultate kot "Zero (0)", če se oba niza ujemata in če se oba dobavljena niza ne ujemata, bi kot rezultat dobili "One (1)" .

V VBA ali Excelu se srečujemo z veliko različnimi scenariji. Eden takih scenarijev je "primerjava dveh nizov." V običajnem delovnem listu lahko to storimo na več načinov, kako pa to storite v VBA?

Spodaj je sintaksa funkcije “StrComp”.

Prvič, dva argumenta sta povsem preprosta,

  • za niz 1 moramo navesti tisto prvo vrednost, ki jo primerjamo in
  • za niz 2 moramo navesti drugo vrednost, ki jo primerjamo.
  • (Primerjaj) to je neobvezni argument funkcije StrComp. To je koristno, če želimo primerjati primerjavo med velikimi in malimi črkami. Na primer, v tem argumentu izraz "Excel" ni enak "EXCEL", ker sta obe besedi občutljivi na velike in male črke.

Tu lahko vnesemo tri vrednosti.

  • Zero (0) za » Binarna primerjava «, tj. »Excel«, ni enako »EXCEL«. Za primerjavo med velikimi in malimi črkami lahko ponudimo 0.
  • Ena (1) za » Primerjava besedila «, tj. »Excel«, je enaka »EXCEL«. To je primerjava, ki ni občutljiva na velike in male črke.
  • Dva (2) to samo za primerjavo baze podatkov.

Rezultati funkcije “StrComp” niso privzeti TRUE ali FALSE, vendar se razlikujejo. Spodaj so prikazani različni rezultati funkcije “StrComp”.

  • Rezultat bomo dobili "0" , če se priloženi nizi ujemajo.
  • Če se priloženi nizi ne ujemajo, bomo dobili "1" , v primeru številčnega ujemanja pa 1, če je niz 1 večji od niza 2.
  • Dobili bomo "-1", če je številka niza 1 manjša od številke niza 2.

Kako izvesti primerjavo nizov v VBA?

Primer # 1

Tekmovali bomo z " Bangalore " in nizom " BANGALORE ."

Najprej prijavite dve spremenljivki VBA kot niz za shranjevanje dveh vrednosti nizov.

Koda:

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

Za ti dve spremenljivki shranite dve nizovni vrednosti.

Koda:

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

Zdaj prijavite še eno spremenljivko za shranjevanje rezultata funkcije “ StrComp ”.

Koda:

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

Za to spremenljivko odprite funkcijo “StrComp”.

Koda:

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

Za “String1” in “String2” smo vrednosti že dodelili s spremenljivkami, zato vnesite imena spremenljivk.

Koda:

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

Zadnji del funkcije je »Primerjaj« za to izbiro »vbTextCompare«.

Koda:

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

Zdaj v polju za sporočila v VBA prikažite spremenljivko »Končni rezultat« .

Koda:

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

Ok, zaženimo kodo in poglejmo rezultat.

Izhod:

Ker sta oba niza "Bangalore" in "BANGALORE" enaka, smo dobili rezultat kot 0, tj. Ujemanje. Obe vrednosti sta občutljivi na velike in male črke, ker smo argument podali kot »vbTextCompare« , ignoriral je ujemanje, občutljivo na velike in male črke, in ujema le vrednosti, zato sta obe vrednosti enaki in rezultat je 0, tj. TRUE.

Koda:

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

2. primer

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

To je vodnik za primerjavo nizov VBA. Tukaj razpravljamo o primerjanju dveh nizov s pomočjo funkcije StrComp v excelu VBA skupaj s primeri in prenesemo predlogo excel. Lahko si ogledate tudi druge članke, povezane z Excel VBA -

  • Vodnik po nizovnih funkcijah VBA
  • VBA razdeli niz v matriko
  • Metode podnizanja VBA
  • Besedilo VBA

Zanimive Članki...