VBA keelte võrdlus - Kuidas võrrelda kahte stringi väärtust?

Lang L: none (table-of-contents)

Exceli VBA stringide võrdlus

VBA kahe stringi võrdlemiseks on meil sisseehitatud funktsioon, st “ StrComp ”. Seda võime lugeda kui " String Comparison ", see funktsioon on saadaval ainult VBA-ga ja pole töölehe funktsioonina saadaval. See võrdleb suvalisi kahte stringi ja tagastab tulemused kui "Null (0)", kui mõlemad stringid sobivad ja kui mõlemad tarnitud stringid ei sobi, saame tulemuseks "Üks (1)" .

VBA-s või excelis seisame silmitsi paljude erinevate stsenaariumidega. Üks selline stsenaarium on "kahe stringi väärtuse võrdlemine". Tavalises töölehel saame neid mitmel viisil teha, kuid kuidas VBA-s seda teha?

Allpool on funktsiooni “StrComp” süntaks.

Esiteks on kaks argumenti üsna lihtsad,

  • 1. stringi jaoks peame esitama, mida esimest väärtust me võrdleme ja
  • jaoks String 2, peame andma teise väärtuse oleme võrreldes.
  • (Võrdle) see on funktsiooni StrComp valikuline argument. Sellest on abi, kui soovime võrrelda suurt ja väiketähti. Näiteks pole selles argumendis “Excel” võrdne “EXCEL” -ga, kuna mõlemad sõnad on tõstutundlikud.

Siit saame esitada kolm väärtust.

  • Binaarse võrdluse ”, st „Exceli”, null (0) ei võrdu väärtusega “EXCEL”. Suur- ja väiketähtede võrdlemiseks võime esitada 0
  • Üks (1) tekstiVõrdle ”, st „Excel”, võrdub väärtusega „EXCEL”. See on juhtumitundlik võrdlus.
  • Kaks (2) ainult andmebaaside võrdlemiseks.

Funktsiooni „StrComp” tulemused ei ole vaikimisi väärtused TRUE või FALSE, vaid erinevad. Allpool on toodud funktsiooni “StrComp” erinevad tulemused.

  • Kui pakutavad stringid sobivad, saame tulemuseks “0” .
  • Saame tähe „1”, kui tarnitud stringid ei sobi, ja numbrilise sobitamise korral saame 1, kui string 1 on suurem kui string 2.
  • Saame “-1”, kui stringi 1 number on väiksem kui stringi 2 number.

Kuidas teha stringide võrdlust VBA-s?

Näide 1

Me sobitame " Bangalore " stringi " BANGALORE " vastu .

Esiteks deklareerige stringina kaks VBA muutujat, et salvestada kaks stringiväärtust.

Kood:

Alamstring_Võrdlus_näide1 () Dimensiooni väärtus1 stringina Dimensiooni väärtus2 kui stringi lõpp Alam

Nende kahe muutuja jaoks salvestage kaks stringi väärtust.

Kood:

Alamstringi_võrdlus_näide1 () Dim-väärtus1 stringina Dim-väärtus2 Stringiväärtusena1 = "Bangalore" väärtus2 = "BANGALORE" End Sub

Nüüd deklareerige veel üks muutuja funktsiooni “ StrComp ” tulemuse salvestamiseks .

Kood:

Alamstringi_võrdlus_näide1 () Dim-väärtus1 stringina Dim-väärtus2 stringina väärtus1 = "Bangalore" väärtus2 = "BANGALORE" Dim FinalResult kui stringi lõpp-alam

Selle muutuja jaoks avage funktsioon „StrComp”.

Kood:

Alamstringi_võrdlus_näide1 () Dim-väärtus1 stringina Dim-väärtus2 stringina väärtus1 = "Bangalore" väärtus2 = "BANGALORE" Dim FinalResult kui string String FinalResult = StrComp (End Sub

„String1” ja „String2” jaoks oleme juba muutujate kaudu väärtused määranud, seega sisestage vastavalt muutujate nimed.

Kood:

Alamstringi_võrdlus_näide1 () Dim-väärtus1 stringina Dim-väärtus2 stringina Value1 = "Bangalore'i väärtus2 =" BANGALORE "Dim FinalResult kui string String FinalResult = StrComp (Value1, Value2, End Sub

Funktsiooni viimane osa on selle valiku „vbTextCompare ” jaoks „Võrdle” .

Kood:

Alamstringi_võrdlus_näide1 () Dim-väärtus1 stringina Dim-väärtus2 Stringiväärtusena1 = "Bangalore" väärtus2 = "BANGALORE" Dim FinalResult kui string String FinalResult = StrComp (Value1, Value2, vbTextCompare) Lõpp-alam

Nüüd kuvage VBA teatekastis muutuja “Lõplik tulemus” .

Kood:

Alamstringi_võrdlus_näide1 () Dim-väärtus1 stringina Dim-väärtus2 Stringiväärtusena1 = "Bangalore" väärtus2 = "BANGALORE" Dim FinalResult kui string String FinalResult = StrComp (Value1, Value2, vbTextCompare) MsgBox FinalResult End Sub

Ok, käivitame koodi ja näeme tulemust.

Väljund:

Kuna mõlemad stringid “Bangalore” ja “BANGALORE” on ühesugused, saime tulemuseks 0 ehk sobitamise. Mõlemad väärtused on tõstutundlikud, kuna oleme esitanud argumendi nimega „vbTextCompare”, see on ignoreerinud tõstutundlikku vastet ja sobitanud ainult väärtused, nii et mõlemad väärtused on samad ja tulemus on 0, st TÕENE.

Kood:

Alamstringi_võrdlus_näide1 () Dim-väärtus1 stringina Dim-väärtus2 Stringiväärtusena1 = "Bangalore" väärtus2 = "BANGALORE" Dim FinalResult kui string String FinalResult = StrComp (Value1, Value2, vbTextCompare) MsgBox FinalResult End Sub

Näide 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

See on olnud juhend VBA stringide võrdlemiseks. Siin arutleme, kuidas võrrelda kahte stringiväärtust funktsiooni StrComp abil Exceli VBA-s koos näidetega ja laadida alla Exceli mall. Võite vaadata ka teisi Exceli VBA-ga seotud artikleid -

  • VBA stringifunktsioonide juhend
  • VBA jagas stringi massiiviks
  • VBA alamstringimeetodid
  • VBA tekst

Huvitavad Artiklid...