Comparația șirurilor VBA - Cum se compară două valori de șir?

Comparație de șiruri VBA Excel

Pentru a compara două șiruri în VBA avem o funcție încorporată, adică „ StrComp ”. Aceasta o putem citi ca „ Comparație de șiruri ”, această funcție este disponibilă numai cu VBA și nu este disponibilă ca funcție de foaie de lucru. Compară orice două șiruri și returnează rezultatele ca „Zero (0)” dacă ambele șiruri se potrivesc și dacă ambele șiruri furnizate nu se potrivesc, atunci vom obține „Un (1)” ca rezultat.

În VBA sau Excel, ne confruntăm cu o mulțime de scenarii diferite. Un astfel de scenariu este „compararea a două valori de șiruri”. Într-o foaie de lucru obișnuită, putem face aceste moduri multiple, dar în VBA, cum faci asta?

Mai jos este sintaxa funcției „StrComp”.

În primul rând, două argumente sunt destul de simple,

  • pentru Șirul 1, trebuie să furnizăm care este prima valoare pe care o comparăm și
  • pentru Șirul 2, trebuie să furnizăm a doua valoare pe care o comparăm.
  • (Comparați) acesta este argumentul opțional al funcției StrComp. Acest lucru este util atunci când dorim să comparăm comparația între majuscule și minuscule. De exemplu, în acest argument, „Excel” nu este egal cu „EXCEL”, deoarece ambele cuvinte sunt sensibile la majuscule.

Putem furniza trei valori aici.

  • Zero (0) pentru „ Comparație binară, adică „Excel”, nu este egal cu „EXCEL”. Pentru comparații sensibile la majuscule, putem furniza 0.
  • Unul (1) pentru „ Comparare text, adică „Excel” este egal cu „EXCEL”. Aceasta este o comparație care nu ține cont de majuscule.
  • Două (2) numai pentru compararea bazei de date.

Rezultatele funcției „StrComp” nu sunt TRUE sau FALSE implicite, dar variază. Mai jos sunt diferitele rezultate ale funcției „StrComp”.

  • Vom obține „0” ca rezultat dacă șirurile furnizate se potrivesc.
  • Vom obține „1” dacă șirurile furnizate nu se potrivesc, iar în cazul potrivirii numerice, vom obține 1 dacă Șirul 1 este mai mare decât șirul 2.
  • Vom obține „-1” dacă numărul șirului 1 este mai mic decât numărul șirului 2.

Cum se efectuează compararea șirurilor în VBA?

Exemplul nr. 1

Vom potrivi „ Bangalore ” cu șirul „ BANGALORE ”.

Mai întâi, declarați două variabile VBA ca șir pentru a stoca două valori de șir.

Cod:

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

Pentru aceste două variabile, stocați două valori de șir.

Cod:

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

Acum declarați încă o variabilă pentru a stoca rezultatul funcției „ StrComp ”.

Cod:

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

Pentru această variabilă, deschideți funcția „StrComp”.

Cod:

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

Pentru „String1” și „String2” am atribuit deja valori prin variabile, așa că introduceți numele variabilelor, respectiv.

Cod:

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

Ultima parte a funcției este „Comparați” pentru această opțiune „vbTextCompare”.

Cod:

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

Acum arătați variabila „Rezultatul final” în caseta de mesaj din VBA.

Cod:

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

Ok, să rulăm codul și să vedem rezultatul.

Ieșire:

Deoarece ambele șiruri „Bangalore” și „BANGALORE” sunt aceleași, am obținut rezultatul ca 0, adică potrivire. Ambele valori sunt sensibile la majuscule și minuscule, deoarece am furnizat argumentul ca „vbTextCompare” , a ignorat potrivirea dintre majuscule și minuscule și a potrivit doar valorile, astfel încât ambele valori sunt aceleași, iar rezultatul este 0, adică TRUE.

Cod:

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

Exemplul nr. 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

Acesta a fost un ghid pentru comparația șirului VBA. Aici vom discuta despre cum să comparați două valori de șiruri folosind funcția StrComp în excel VBA împreună cu exemple și să descărcați un șablon Excel. De asemenea, puteți arunca o privire la alte articole legate de Excel VBA -

  • Ghid pentru funcțiile VBA String
  • VBA Split String in Array
  • Metode VBA SubString
  • Text VBA

Articole interesante...