VBA stīgu salīdzinājums - Kā salīdzināt divas stīgu vērtības?

Excel VBA virkņu salīdzinājums

Lai salīdzinātu divas VBA virknes, mums ir iebūvēta funkcija, ti, “ StrComp ”. To mēs varam lasīt kā “ Stīgu salīdzinājums ”, šī funkcija ir pieejama tikai ar VBA un nav pieejama kā darblapas funkcija. Tas salīdzina jebkuras divas virknes un atgriež rezultātus kā “Nulle (0)”, ja abas virknes atbilst un, ja abas piegādātās virknes nesakrīt, tad mēs iegūsim rezultātu “Viens (1)” .

VBA vai Excel mēs saskaramies ar daudziem dažādiem scenārijiem. Viens no šādiem scenārijiem ir “divu virkņu vērtību salīdzināšana”. Parastā darblapā mēs varam rīkoties vairākos veidos, bet kā jūs to darāt VBA?

Zemāk ir funkcijas “StrComp” sintakse.

Pirmkārt, divi argumenti ir diezgan vienkārši,

  • par String 1, mums ir nepieciešams, lai sniegtu to, ko pirmā vērtība tiek salīdzinātas un
  • attiecībā uz 2. virkni mums jānorāda otrā salīdzināmā vērtība.
  • (Salīdzināt) tas ir StrComp funkcijas izvēles arguments. Tas ir noderīgi, ja mēs vēlamies salīdzināt reģistrjutīgu salīdzinājumu. Piemēram, šajā argumentā “Excel” nav vienāds ar “EXCEL”, jo abi šie vārdi ir reģistrjutīgi.

Mēs šeit varam piegādāt trīs vērtības.

  • Binary Compare ”, ti, “Excel”, nulle (0) nav vienāda ar “EXCEL”. Lai salīdzinātu reģistru ar reģistrjutīgu reģistru, mēs varam piegādāt 0.
  • Viens (1) vienumam “ Teksta salīdzinājums ”, ti, “Excel”, ir vienāds ar “EXCEL”. Šis ir salīdzinājums, kas nav reģistrjutīgs.
  • Divi (2) tikai datu bāzes salīdzināšanai.

Funkcijas “StrComp” rezultāti pēc noklusējuma neatbilst patiesībai vai nepatiesai vērtībai, bet atšķiras. Zemāk ir dažādi “StrComp” funkcijas rezultāti.

  • Rezultātā mēs saņemsim “0” , ja piegādātās virknes atbilst.
  • Mēs saņemsim “1”, ja piegādātās virknes nesakrīt, un skaitliskas sakritības gadījumā mēs saņemsim 1, ja 1. virkne ir lielāka par 2. virkni.
  • Mēs saņemsim “-1”, ja 1. virknes skaitlis ir mazāks par 2. virknes numuru.

Kā veikt stīgu salīdzinājumu VBA?

1. piemērs

Mēs saskaņosim “ Bangalore ” ar virkni “ BANGALORE ”.

Pirmkārt, deklarējiet divus VBA mainīgos kā virkni, lai saglabātu divas virknes vērtības.

Kods:

Apakšējā virkne_Salīdzinājums_piemērs1 () Dim Value1 kā virkne Dim Value2 kā virknes beigu apakšdaļa

Šiem diviem mainīgajiem lielumiem saglabājiet divas virknes vērtības.

Kods:

Apakšējās virknes_Salīdzinājums_piemērs1 () Dim vērtība1 kā virkne Dim vērtība2 kā virknes vērtība1 = "Bangalore" vērtība2 = "BANGALORE" Beigu apakšdaļa

Tagad deklarējiet vēl vienu mainīgo, lai saglabātu funkcijas “ StrComp ” rezultātu.

Kods:

Apakšējā virkne_Salīdzinājums_piemērs1 () Dim vērtība1 kā virkne Dim vērtība2 kā virknes vērtība1 = "Bangalore" vērtība2 = "BANGALORE" Dim FinalResult kā virknes beigas

Šim mainīgajam atveriet funkciju “StrComp”.

Kods:

Apakšējās virknes_salīdzinājums_piemērs1 () Dim vērtība1 kā virkne Dim vērtība2 kā virknes vērtība1 = "Bangalore" vērtība2 = "BANGALORE" Dim FinalResult kā virkne FinalResult = StrComp (beigu apakšdaļa

“String1” un “String2” vērtības jau ir piešķirtas, izmantojot mainīgos, tāpēc attiecīgi ievadiet mainīgo nosaukumus.

Kods:

Apakšējās virknes_Salīdzinājums_piemērs1 () Dim vērtība1 kā virkne Dim vērtība2 kā virknes vērtība1 = "Bangalore" vērtība2 = "BANGALORE" Dim FinalResult As virkne FinalResult = StrComp (vērtība1, vērtība2, beigu apakšdaļa

Funkcijas pēdējā daļa ir “Salīdzināt” šai izvēlei “vbTextCompare”.

Kods:

Apakšējās virknes_Salīdzinājums_piemērs1 () Dim vērtība1 kā virkne Dim vērtība2 kā virknes vērtība1 = "Bangalore" vērtība2 = "BANGALORE" Dim FinalResult As virkne FinalResult = StrComp (Value1, Value2, vbTextCompare) Beigas Sub

Tagad VBA ziņojumu lodziņā parādiet mainīgo “Galīgais rezultāts” .

Kods:

Sub virknes_salīdzinājums_piemērs1 () Dim vērtība1 kā virkne Dim vērtība2 kā virknes vērtība1 = "Bangalore" vērtība2 = "BANGALORE" Dim FinalResult As virkne FinalResult = StrComp (vērtība1, vērtība2, vbTextCompare) MsgBox FinalResult End Sub

Labi, palaidīsim kodu un redzēsim rezultātu.

Izeja:

Tā kā abas virknes “Bangalore” un “BANGALORE” ir vienādas, rezultāts tika iegūts kā 0, ti, saskaņošana. Abas vērtības ir reģistrjutīgas, jo mēs esam norādījuši argumentu kā “vbTextCompare”, tas ir ignorējis reģistrjutīgu atbilstību un atbilst tikai vērtībām, tāpēc abas vērtības ir vienādas, un rezultāts ir 0, ti, PATIESA.

Kods:

Sub virknes_salīdzinājums_piemērs1 () Dim vērtība1 kā virkne Dim vērtība2 kā virknes vērtība1 = "Bangalore" vērtība2 = "BANGALORE" Dim FinalResult As virkne FinalResult = StrComp (vērtība1, vērtība2, vbTextCompare) MsgBox FinalResult End Sub

2. piemērs

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

Šis ir bijis ceļvedis VBA virkņu salīdzināšanai. Šeit mēs apspriedīsim, kā salīdzināt divas virkņu vērtības, izmantojot StrComp funkciju Excel VBA, kā arī piemērus un lejupielādējam Excel veidni. Varat arī apskatīt citus rakstus, kas saistīti ar Excel VBA -

  • Ceļvedis VBA stīgu funkcijām
  • VBA sadalīja virkni masīvā
  • VBA SubString metodes
  • VBA teksts

Interesanti raksti...