Porovnanie reťazcov VBA Ako porovnať dve reťazcové hodnoty?

Porovnanie reťazcov Excel VBA

Na porovnanie dvoch reťazcov vo VBA máme zabudovanú funkciu, tj. „ StrComp “. Môžeme to čítať ako „ Porovnanie reťazcov “, táto funkcia je k dispozícii iba pre VBA a nie je k dispozícii ako funkcia pracovného hárka. Porovná ľubovoľné dva reťazce a vráti výsledky ako „Zero (0)“, ak sa obidva reťazce zhodujú, a ak sa obidva dodané reťazce nezhodujú, dostaneme ako výsledok „One (1)“ .

Vo VBA alebo Exceli čelíme mnohým rôznym scenárom. Jedným z takýchto scenárov je „porovnanie dvoch reťazcových hodnôt“. V bežnom pracovnom liste môžeme robiť tieto rôzne spôsoby, ako to však urobiť vo VBA?

Ďalej je uvedená syntax funkcie „StrComp“.

Po prvé, dva argumenty sú dosť jednoduché,

  • pre reťazec 1 musíme dodať, akú prvú hodnotu porovnávame a
  • pre reťazec 2 musíme dodať druhú hodnotu, ktorú porovnávame.
  • (Porovnať) toto je voliteľný argument funkcie StrComp. To je užitočné, ak chceme porovnať porovnanie malých a veľkých písmen. Napríklad v tomto argumente sa výraz „Excel“ nerovná výrazu „EXCEL“, pretože obe tieto slová rozlišujú veľké a malé písmená.

Tu môžeme dodať tri hodnoty.

  • Nula (0) pre „ Binárne porovnanie “, tj. „Excel“, sa nerovná „EXCEL“. Pre porovnanie malých a veľkých písmen môžeme dodať 0.
  • Jeden (1) pre textové porovnanie, tj „Excel“, sa rovná „EXCEL“. Toto porovnanie nerozlišuje veľké a malé písmená.
  • Dva (2) iba na porovnanie databáz.

Výsledky funkcie „StrComp“ nemajú predvolene hodnotu TRUE alebo FALSE, ale líšia sa. Ďalej sú uvedené rôzne výsledky funkcie „StrComp“.

  • Ak sa dodané reťazce zhodujú, dostaneme ako výsledok „0“ .
  • Získame „1“, ak sa zadané reťazce nezhodujú, a v prípade numerického porovnávania dostaneme 1, ak je reťazec 1 väčší ako reťazec 2.
  • „-1“ dostaneme, ak je číslo reťazca 1 menšie ako číslo reťazca 2.

Ako vykonať porovnanie reťazcov vo VBA?

Príklad č

Zhodíme zápas „ Bangalore “ s reťazcom „ BANGALORE “.

Najskôr deklarujte dve premenné VBA ako reťazec na uloženie dvoch hodnôt reťazca.

Kód:

Sub String_Comparison_Example1 () Dim hodnota1 ako reťazec Dim hodnota2 ako reťazec na konci Sub

Pre tieto dve premenné uložte dve reťazcové hodnoty.

Kód:

Sub String_Comparison_Example1 () Dim Hodnota1 Ako String Dim Hodnota2 Ako String Hodnota1 = "Bangalore" Hodnota2 = "BANGALORE" Koniec Sub

Teraz deklarujte jednu ďalšiu premennú na uloženie výsledku funkcie „ StrComp “.

Kód:

Sub String_Comparison_Example1 () Dim Hodnota1 Ako String Dim Hodnota2 Ako String Hodnota1 = "Bangalore" Value2 = "BANGALORE" Dim DimResult Ako String End Sub

Pre túto premennú otvorte funkciu „StrComp“.

Kód:

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

Pre reťazce „String1“ a „String2“ sme už priradili hodnoty prostredníctvom premenných, zadajte teda názvy premenných.

Kód:

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

Posledná časť funkcie je „Porovnať“ pre túto voľbu „vbTextCompare“.

Kód:

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

Teraz ukážte premennú „Konečný výsledok“ v okne správy vo VBA.

Kód:

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

Dobre, spustíme kód a uvidíme výsledok.

Výkon:

Pretože obidva reťazce „Bangalore“ a „BANGALORE“ sú rovnaké, dostali sme výsledok ako 0, tj zhodu. Obe hodnoty rozlišujú veľké a malé písmená, pretože sme argument dodali ako „vbTextCompare“ , ignoroval zhodu malých a veľkých písmen a zhodoval sa iba s hodnotami, takže obe hodnoty sú rovnaké a výsledok je 0, tj. PRAVDA.

Kód:

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

Príklad č

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

Toto bol návod na porovnanie reťazcov VBA. Tu diskutujeme o tom, ako porovnať dve hodnoty reťazcov pomocou funkcie StrComp v programe Excel VBA spolu s príkladmi a stiahnuť šablónu programu Excel. Môžete sa tiež pozrieť na ďalšie články týkajúce sa programu Excel VBA -

  • Sprievodca funkciami reťazca VBA
  • VBA Split String do poľa
  • Metódy podreťazca VBA
  • Text VBA

Zaujímavé články...