VBA stygų palyginimas Kaip palyginti dvi styginių vertybes?

„Excel VBA“ styginių palyginimas

Norėdami palyginti dvi VBA eilutes, turime integruotą funkciją, ty „ StrComp “. Tai galime perskaityti kaip „ Styginių palyginimą “, ši funkcija galima tik su VBA ir nėra kaip darbalapio funkcija. Palyginamos bet kurios dvi eilutės ir rezultatai pateikiami kaip „Nulis (0)“, jei abi eilutės sutampa ir jei abi pateiktos eilutės nesutampa, gautume „Vienas (1)“ .

VBA ar „Excel“ mes susiduriame su daugybe skirtingų scenarijų. Vienas iš tokių scenarijų yra „dviejų eilutės verčių palyginimas“. Įprastame darbalapyje galime tai padaryti keliais būdais, tačiau kaip tai padaryti VBA?

Žemiau pateikiama funkcijos „StrComp“ sintaksė.

Pirma, du argumentai yra gana paprasti,

  • styginių 1, turime pateikti kas pirmas vertės esame lyginant ir
  • styginių 2, mes turime tiekti antrąjį vertę mes lyginant.
  • (Palyginti) tai yra pasirinktinis StrComp funkcijos argumentas. Tai naudinga, kai norime palyginti didžiųjų ir mažųjų raidžių palyginimą. Pavyzdžiui, šiame argumente „Excel“ nėra lygus „EXCEL“, nes abu šie žodžiai skiria didžiosios ir mažosios raidės.

Čia galime pateikti tris vertes.

  • Dvejetainio palyginimo “, ty „Excel“, nulis (0) nėra lygus „EXCEL“. Skiriant didžiosios ir mažosios raidės, galime pateikti 0.
  • Vienas (1) už „ Teksto palyginimas “, ty „Excel“, yra lygus „EXCEL“. Tai yra nedidelis atvejis.
  • Du (2) tai tik duomenų bazės palyginimui.

Funkcijos „StrComp“ rezultatai pagal numatytuosius nustatymus nėra TRUE ar FALSE, bet skiriasi. Žemiau pateikiami skirtingi „StrComp“ funkcijos rezultatai.

  • Rezultatas bus „0“ , jei pateiktos eilutės sutampa.
  • Mes gausime „1“, jei pateiktos eilutės nesutampa, o skaitinės atitikties atveju gausime 1, jei 1 eilutė yra didesnė nei 2 eilutė.
  • Mes gausime „-1“, jei 1 eilutės numeris yra mažesnis nei 2 eilutės numeris.

Kaip atlikti styginių palyginimą VBA?

1 pavyzdys

Bangaloresulyginsime su styga „ BANGALORE “.

Pirmiausia paskelbkite du VBA kintamuosius kaip eilutę, kad būtų išsaugotos dvi eilutės reikšmės.

Kodas:

Sub String_Comparison_Example1 () Dim reikšmė1 kaip eilutė Dim reikšmė2 kaip eilutė End Sub

Šiems dviem kintamiesiems išsaugokite dvi eilutės reikšmes.

Kodas:

Sub eilutės_Palyginimas_pavyzdys1 () Dim reikšmė1 kaip eilutė Dim reikšmė2 kaip eilutės reikšmė1 = "Bangalore" vertė2 = "BANGALORE" pabaigos dalis

Dabar deklaruokite dar vieną kintamąjį, kad išsaugotumėte funkcijos „ StrComp “ rezultatą.

Kodas:

Sub eilutė_Palyginimas_pavyzdys1 () Dim reikšmė1 kaip eilutė Dim reikšmė2 kaip eilutės reikšmė1 = "Bangalore" vertė2 = "BANGALORE" Dim FinalResult kaip eilutės pabaiga Sub

Šiam kintamajam atidarykite funkciją „StrComp“.

Kodas:

Sub eilutės_Palyginimas_pavyzdys1 () Dim reikšmė1 kaip eilutė Dim reikšmė2 kaip eilutės reikšmė1 = "Bangalore" reikšmė2 = "BANGALORE" Dim FinalResult kaip eilutė FinalResult = StrComp (pabaigos dalis

„String1“ ir „String2“ mes jau priskyrėme reikšmes per kintamuosius, todėl įveskite atitinkamai kintamųjų pavadinimus.

Kodas:

Sub eilutės_Palyginimas_pavyzdys1 () Dim reikšmė1 kaip eilutė Dim reikšmė2 kaip eilutės reikšmė1 = "Bangalore" reikšmė2 = "BANGALORE" Dim FinalResult kaip eilutė FinalResult = StrComp (reikšmė1, reikšmė2, pabaigos dalis

Paskutinė funkcijos dalis yra „Palyginti“ šiam pasirinkimui „vbTextCompare“.

Kodas:

Sub eilutės_Palyginimas_pavyzdys1 () Dim reikšmė1 kaip eilutė Dim reikšmė2 kaip eilutės reikšmė1 = "Bangalore" vertė2 = "BANGALORE" Dim FinalResult As eilutė FinalResult = StrComp (Value1, Value2, vbTextCompare) Pabaiga Sub

Dabar VBA pranešimų laukelyje rodykite kintamąjį „Galutinis rezultatas“ .

Kodas:

Sub eilutės_Palyginimas_pavyzdys1 () Dim reikšmė1 kaip eilutė Dim reikšmė2 kaip eilutės reikšmė1 = "Bangalore" reikšmė2 = "BANGALORE" Dim FinalResult kaip eilutė FinalResult = StrComp (reikšmė1, reikšmė2, vbTextCompare) MsgBox FinalResult pabaigos antrinė vertė

Gerai, paleiskime kodą ir pamatysime rezultatą.

Išvestis:

Kadangi abi „Bangalore“ ir „BANGALORE“ eilutės yra vienodos, rezultatą gavome kaip 0, t. Abi reikšmės skiriamos didžiosiomis ir mažosiomis raidėmis, nes argumentą pateikėme kaip „vbTextCompare“, jis nepaisė didžiųjų ir mažųjų raidžių atitikties ir atitiko tik reikšmes, todėl abi reikšmės yra vienodos, o rezultatas yra 0, ty TIESA.

Kodas:

Sub eilutės_Palyginimas_pavyzdys1 () Dim reikšmė1 kaip eilutė Dim reikšmė2 kaip eilutės reikšmė1 = "Bangalore" reikšmė2 = "BANGALORE" Dim FinalResult kaip eilutė FinalResult = StrComp (reikšmė1, reikšmė2, vbTextCompare) MsgBox FinalResult pabaigos antrinė vertė

2 pavyzdys

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

Tai buvo VBA eilučių palyginimo vadovas. Čia aptarsime, kaip palyginti dvi eilutės reikšmes naudojant „StrComp“ funkciją „Excel VBA“ kartu su pavyzdžiais ir atsisiųsti „Excel“ šabloną. Taip pat galite peržiūrėti kitus straipsnius, susijusius su „Excel VBA“ -

  • VBA styginių funkcijų vadovas
  • VBA padalijo stygą į masyvą
  • VBA substringo metodai
  • VBA tekstas

Įdomios straipsniai...