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