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

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

Да бисмо упоредили два низа у ВБА, имамо уграђену функцију, тј.СтрЦомп”. То можемо прочитати као „Низ поређења”, Ова функција је доступна само са ВБА и није доступна као функција радног листа. Поређује било која два низа и враћа резултате као „Нула (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

За исти код променићемо метод упоређивања из “ВбТектЦомпаре” до “ВбБинариЦомпаре”.

Шифра:

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

Сада покрените код и погледајте резултат.

Излаз:

Иако су оба низа иста, резултат смо добили као 1 тј. Не подудара се јер смо методу упоређења применили као “ВбБинариЦомпаре” која упоређује две вредности као осетљиве на велика и мала слова.

Пример # 3

Сада ћемо видети како упоређивати нумеричке вредности. За исти код ћемо доделити различите вредности.

Шифра:

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

Обе вредности су 500 и као резултат ћемо добити 0 јер се обе вредности подударају.

Излаз:

Сада ћу променити број Валуе1 са 500 на 100.

Шифра:

 Суб Стринг_Цомпарисон_Екампле3 () Дим Валуе1 Ас Стринг Дим Валуе2 Ас Стринг Валуе1 = 1000 Валуе2 = 500 Дим ФиналРесулт Ас Стринг ФиналРесулт = СтрЦомп (Валуе1, Валуе2, вбБинариЦомпаре) МсгБок ФиналРесулт Енд Суб 

Покрените код и погледајте резултат.

Излаз:

Знамо да Валуе1 и Валуе2 нису исти, али резултат је -1 уместо 1, јер ћемо за нумеричко поређење када је вредност Стринг 1 већа од Стринг 2 добити ову -1.

Шифра:

 Суб Стринг_Цомпарисон_Екампле3 () Дим Валуе1 Ас Стринг Дим Валуе2 Ас Стринг Валуе1 = 1000 Валуе2 = 500 Дим ФиналРесулт Ас Стринг ФиналРесулт = СтрЦомп (Валуе1, Валуе2, вбБинариЦомпаре) МсгБок ФиналРесулт Енд Суб 

Сада ћу обрнути вредности.

Шифра:

 Суб Стринг_Цомпарисон_Екампле3 () Дим Валуе1 Ас Стринг Дим Валуе2 Ас Стринг Валуе1 = 500 Валуе2 = 1000 Дим ФиналРесулт Ас Стринг ФиналРесулт = СтрЦомп (Валуе1, Валуе2, вбБинариЦомпаре) МсгБок ФиналРесулт Енд Суб 

Покрените код и погледајте резултат.

Излаз:

Ово није посебно ако се не подудара, добићемо само 1.

Ствари које треба овде запамтити

  • Аргумент [Упореди] „СтрЦомп“ није обавезан, али у случају подударања великих и малих слова можемо то искористити, а опција је “ВбБинариЦомпаре”.
  • Резултат нумеричких вредности се мало разликује у случају да је Низ 1 већи од Низ 2 и резултат буде -1.
  • Резултати су 0 ако се подударају и 1 ако се не подударају.