ВБА поређење низова - Како упоређивати две вредности низа?

Преглед садржаја

Поређење низа Екцел ВБА

За поређење два низа у ВБА имамо уграђену функцију, тј. „ СтрЦомп “. То можемо прочитати као „ Поређење низа “, ова функција је доступна само са ВБА и није доступна као функција радног листа. Поређује било која два низа и враћа резултате као „Нула (0)“ ако се оба низа подударају и ако се обе испоручене жице не подударају, као резултат бисмо добили „Један (1)“ .

У ВБА или Екцелу суочавамо се са пуно различитих сценарија. Један такав сценарио је „упоређивање две вредности низа“. У редовном радном листу можемо то учинити на више начина, али у ВБА, како се то ради?

Испод је синтакса функције „СтрЦомп“.

Прво, два аргумента су прилично једноставна,

  • за Стринг 1 морамо да наведемо прву вредност коју упоређујемо и
  • за Стринг 2 морамо дати другу вредност коју упоређујемо.
  • (Упореди) ово је опционални аргумент функције СтрЦомп. Ово је корисно када желимо да упоредимо поређење са великим и малим словима. На пример, у овом аргументу „Екцел“ није једнако „ЕКСЦЕЛ“ јер обе ове речи разликују велика и мала слова.

Овде можемо навести три вредности.

  • Нула (0) за „ Бинарно упоређивање “, тј. „Екцел“, није једнака „ЕКСЦЕЛ“. За упоређивање великих и малих слова можемо дати 0.
  • Један (1) за „ Тект Цомпаре “, тј. „Екцел“, једнак је „ЕКСЦЕЛ“. Ово је поређење без великих и малих слова.
  • Два (2) ово само за поређење базе података.

Резултати функције „СтрЦомп“ не подразумевају ТАЧНО или НЕТОЧНО, али се разликују. Испод су различити резултати функције „СтрЦомп“.

  • Резултат ће бити „0“ ако се испоручени низови подударају.
  • Добит ћемо „1“ ако се испоручени низови не подударају, а у случају нумеричког подударања, добит ћемо 1 ако је Низ 1 већи од низа 2.
  • Добићемо „-1“ ако је број низа 1 мањи од броја низа 2.

Како извршити поређење низова у ВБА?

Пример # 1

Упоредићемо „ Бангалоре “ са низом „ БАНГАЛОРЕ “.

Прво прогласите две ВБА променљиве као низ за чување две вредности низа.

Шифра:

Суб Стринг_Цомпарисон_Екампле1 () Дим Валуе1 Ас Стринг Дим Валуе2 Ас Стринг Енд Суб

За ове две променљиве сачувајте две вредности низа.

Шифра:

Суб Стринг_Цомпарисон_Екампле1 () Дим Валуе1 Ас Стринг Дим Валуе2 Ас Стринг Валуе1 = "Бангалоре" Валуе2 = "БАНГАЛОРЕ" Енд Суб

Сада прогласите још једну променљиву за чување резултата функције “ СтрЦомп ”.

Шифра:

Суб Стринг_Цомпарисон_Екампле1 () Дим Валуе1 Ас Стринг Дим Валуе2 Ас Стринг Валуе1 = "Бангалоре" Валуе2 = "БАНГАЛОРЕ" Дим ФиналРесулт Ас Стринг Енд Суб

За ову променљиву отворите функцију „СтрЦомп“.

Шифра:

Суб Стринг_Цомпарисон_Екампле1 () Дим Валуе1 Ас Стринг Дим Валуе2 Ас Стринг Валуе1 = "Бангалоре" Валуе2 = "БАНГАЛОРЕ" Дим ФиналРесулт Ас Стринг ФиналРесулт = СтрЦомп (Енд Суб

За „Стринг1“ и „Стринг2“ већ смо доделили вредности кроз променљиве, па унесите имена променљивих, респективно.

Шифра:

Суб Стринг_Цомпарисон_Екампле1 () Дим Валуе1 Ас Стринг Дим Валуе2 Ас Стринг Валуе1 = "Бангалоре" Валуе2 = "БАНГАЛОРЕ" Дим ФиналРесулт Ас Стринг ФиналРесулт = СтрЦомп (Валуе1, Валуе2, Енд Суб

Последњи део функције је „Упореди“ за овај избор „вбТектЦомпаре“.

Шифра:

Суб Стринг_Цомпарисон_Екампле1 () Дим Валуе1 Ас Стринг Дим Валуе2 Ас Стринг Валуе1 = "Бангалоре" Валуе2 = "БАНГАЛОРЕ" Дим ФиналРесулт Ас Стринг ФиналРесулт = СтрЦомп (Валуе1, Валуе2, вбТектЦомпаре) Енд Суб

Сада покажите променљиву „Коначни резултат“ у оквиру за поруке у ВБА.

Шифра:

Суб Стринг_Цомпарисон_Екампле1 () Дим Валуе1 Ас Стринг Дим Валуе2 Ас Стринг Валуе1 = "Бангалоре" Валуе2 = "БАНГАЛОРЕ" Дим ФиналРесулт Ас Стринг ФиналРесулт = СтрЦомп (Валуе1, Валуе2, вбТектЦомпаре) МсгБок ФиналРесулт Енд Суб

Ок, хајде да покренемо код и видимо резултат.

Излаз:

Будући да су оба низа „Бангалоре“ и „БАНГАЛОРЕ“ исти, резултат смо добили као 0, тј. Подударање. Обе вредности су осетљиве на велика и мала слова, јер смо аргумент предали као „вбТектЦомпаре“, он је занемарио подударање осетљивог на велика слова и подударао само вредности, тако да су обе вредности исте, а резултат је 0, тј. ТРУЕ.

Шифра:

Суб Стринг_Цомпарисон_Екампле1 () Дим Валуе1 Ас Стринг Дим Валуе2 Ас Стринг Валуе1 = "Бангалоре" Валуе2 = "БАНГАЛОРЕ" Дим ФиналРесулт Ас Стринг ФиналРесулт = СтрЦомп (Валуе1, Валуе2, вбТектЦомпаре) МсгБок ФиналРесулт Енд Суб

Пример # 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

Ово је био водич за поређење ВБА низова. Овде ћемо разговарати о томе како упоређивати две стринг вредности помоћу функције СтрЦомп у екцел ВБА заједно са примерима и преузети Екцел образац. Можда ћете погледати и друге чланке повезане са Екцел ВБА -

  • Водич за ВБА низ функције
  • ВБА Сплит Стринг инто Арраи
  • ВБА методе поднизања
  • ВБА текст

Занимљиви Чланци...