VBA húrok összehasonlítása - Hogyan lehet összehasonlítani két karakterláncot?

Excel VBA karakterlánc-összehasonlítás

Két sztring összehasonlításához a VBA-ban van egy beépített függvényünk, azaz az „ StrComp ”. Ezt „ String Comparison ” néven olvashatjuk, ez a funkció csak a VBA-nál érhető el, és nem érhető el munkalapfüggvényként. Összehasonlítja bármely két karakterláncot, és az eredményeket „Zero (0)” értékként adja vissza, ha mindkét karakterlánc egyezik, és ha mindkét szállított karakterlánc nem egyezik, akkor „One (1)” -t kapunk.

A VBA vagy az excel során rengeteg különböző forgatókönyvvel kell szembenéznünk. Az egyik ilyen eset két „string érték összehasonlítása”. Egy szokásos munkalapon ezeket többféleképpen is megtehetjük, de a VBA-ban hogyan csinálod ezt?

Az alábbiakban található az „StrComp” függvény szintaxisa.

Először is, két érv nagyon egyszerű,

  • Az 1. húr esetében meg kell adnunk, hogy mi az első érték, amelyet összehasonlítunk és
  • a 2. karakterlánc esetében meg kell adnunk a második értéket, amelyet összehasonlítunk.
  • (Összehasonlítás) ez az StrComp függvény opcionális argumentuma. Ez hasznos, ha a kis- és nagybetűk közötti összehasonlítást szeretnénk összehasonlítani. Például ebben az érvben az „Excel” nem egyenlő az „EXCEL” -vel, mert mindkét szó kis- és nagybetűket különbözteti meg.

Három értéket tudunk itt megadni.

  • A „ Bináris összehasonlítás ”, azaz az „Excel” nulla (0) nem egyenlő az „EXCEL” értékkel. A kis- és nagybetűk közötti összehasonlításhoz 0-t adhatunk meg.
  • Az egyik (1) a „ Text Compare ”, azaz az „Excel” kifejezésnél megegyezik az „EXCEL” értékkel. Ez nem kis- és nagybetűk közötti összehasonlítás.
  • Kettő (2) ez csak az adatbázis összehasonlításához.

Az „StrComp” függvény eredményei nem alapértelmezés szerint az IGAZ vagy HAMIS, hanem változnak. Az alábbiakban láthatjuk az „StrComp” függvény különböző eredményeit.

  • Ha a mellékelt karakterláncok egyeznek, akkor 0- t kapunk .
  • Mi lesz az „1” , ha a mellékelt húrok nem illő, és abban az esetben számszerű egyezés, mi lesz 1, ha 1 zsinór nagyobb húr 2.
  • Akkor kapunk -1 értéket, ha az 1. karakterlánc száma kisebb, mint a 2. karakterlánc száma.

Hogyan kell elvégezni a húrok összehasonlítását a VBA-ban?

1. példa

Megtaláljuk a „ Bangalore ” -t a „ BANGALOREhúrral .

Először deklaráljon két VBA-változót stringként két karakterlánc-érték tárolására.

Kód:

Sub String_Comparison_Példa1 () Dim érték1 mint karakterlánc Dim érték2 mint karakterlánc vége Sub

Ehhez a két változóhoz tároljon két karakterlánc-értéket.

Kód:

Sub String_Comparison_Példa1 () Dimenzióérték1 Karakterláncként Dimenzióérték2 Karaktersorozatértékként1 = "Bangalore" Érték2 = "BANGALORE" End Sub

Most deklaráljon még egy változót az „ StrComp ” függvény eredményének tárolására .

Kód:

Sub String_Comparison_Példa1 () Dim érték1 mint karakterlánc Dim Value2 mint karakterlánc értéke1 = "Bangalore" érték2 = "BANGALORE" Dim FinalResult mint karakterlánc vége Sub

Ehhez a változóhoz nyissa meg az „StrComp” függvényt.

Kód:

Sub String_Comparison_Példa1 () Dim érték1 mint karakterlánc Dim Value2 mint karakterlánc értéke1 = "Bangalore" Érték2 = "BANGALORE" Dim FinalResult mint karakterlánc FinalResult = StrComp (End Sub

A „String1” és „String2” esetében már változókon keresztül rendeltünk értékeket, ezért adja meg a változók nevét, ill.

Kód:

Sub String_Comparison_Példa1 () Dim érték1 mint karakterlánc Dim Value2 mint karakterlánc értéke1 = "Bangalore" Value2 = "BANGALORE" Dim FinalResult As String FinalResult = StrComp (Value1, Value2, End Sub

A függvény utolsó része a „Összehasonlítás” ehhez a választáshoz: „vbTextCompare”.

Kód:

Sub String_Comparison_Példa1 () Dimenzióérték1 Karaktersorozatként Dimenzióérték2 As String Value1 = "Bangalore" Érték2 = "BANGALORE" Dim FinalResult As String FinalResult = StrComp (Value1, Value2, vbTextCompare) End Sub

Most mutassa meg a „Végeredmény” változót a VBA üzenet mezőjében.

Kód:

Sub String_Comparison_Példa1 () Dimenzióérték1 Karaktersorozatként Dimenzióérték2 Karaktersorozatként1 = "Bangalore" Érték2 = "BANGALORE" Dim FinalResult As Karaktersorozat FinalResult = StrComp (Value1, Value2, vbTextCompare) MsgBox FinalResult End Sub Sub

Ok, futtassuk a kódot, és nézzük meg az eredményt.

Kimenet:

Mivel a „Bangalore” és a „Bangalore” karakterláncok egyaránt megegyeznek, az eredményt 0-nak, azaz egyezésnek kaptuk. Mindkét érték megkülönbözteti a kis- és nagybetűket, mivel az argumentumot „vbTextCompare” néven adtuk meg, figyelmen kívül hagyta a kis- és nagybetűk közötti egyezést, és csak az értékeket illesztette össze, így mindkét érték megegyezik, és az eredmény 0, azaz IGAZ.

Kód:

Sub String_Comparison_Példa1 () Dimenzióérték1 Karaktersorozatként Dimenzióérték2 Karaktersorozatként1 = "Bangalore" Érték2 = "BANGALORE" Dim FinalResult As Karaktersorozat FinalResult = StrComp (Value1, Value2, vbTextCompare) MsgBox FinalResult End Sub Sub

2. példa

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

Ez útmutató a VBA karakterlánc-összehasonlításhoz. Itt megvitatjuk, hogyan lehet összehasonlítani két string értéket az StrComp függvény használatával az excel VBA-ban, példákkal együtt, és letölteni egy excel sablont. Megtekintheti az Excel VBA-val kapcsolatos egyéb cikkeket is.

  • Útmutató a VBA karakterlánc-funkciókhoz
  • A VBA sztringre osztja a tömböt
  • VBA SubString módszerek
  • VBA szöveg

érdekes cikkek...