VBA Application.Match - Ръководство стъпка по стъпка с примери

Съдържание

Excel VBA Application.Match

Едно от най-добрите неща за VBA е, че той има своя собствена функция и също така ще ни позволи да получим достъп до всички функции на работния лист в класа „Работен лист“. Трябва да сте вече използвали функцията MATCH като функция на работен лист, но това не е функция на VBA, така че трябва да осъществим достъп под клас на функция на работен лист. В тази статия ще ви покажем как да използвате функцията MATCH във VBA, използвайки метода на приложението.

Бързо обобщение на функцията МАТЧ

MATCH е справочна функция, която търси позицията на справочната стойност в споменатия справочен масив. Например погледнете изображението по-долу на данните.

В горните данни имаме месеци от А2 до А6 и ако искаме да знаем на кое място настъпва месец „март“, тогава можем да използваме функцията МАТЧ.

По-долу е синтаксисът на функцията MATCH.

MATCH (Справочна стойност, Lookup Array, (Тип на съвпадението))
  • Справочна стойност: За коя стойност търсим позицията в справочния масив.
  • Lookup Array: В кой масив търсим позицията на справочната стойност.
  • (Тип на съвпадението): За това можем да предоставим три аргумента.
  1. 1 = по-малко от
  2. 0 = Точно съвпадение
  3. -1 = по-голямо от

През повечето време използваме само „0 точно съвпадение“.

Как да използвам функцията Application.Match във VBA?

Пример # 1

Погледнете данните по-долу в Excel.

От горните данни трябва да намерим позицията на месец „март“ в диапазона от клетки от А2 до А6. Тъй като веднага се нуждаем от резултати в D2 клетки, стартирайте кода като Range (“D2”). Стойност =.

За да пристигнем стойност в клетка D2, трябва да използваме функцията за работен лист MATCH, така че за достъп до това първо трябва да осъществим достъп до обекта APPLICATION и след това до обекта WUNKSHEET FUNCTION.

Въведете точка, за да видите списък с функции на работния лист.

Изберете „Match“ от списъка.

Един от проблемите във VBA при използване на функции на работен лист е, че не виждаме точен синтаксис, както виждаме с функцията на работен лист. Това е една от причините да обясним синтаксиса само в началото.

И така, първият аргумент е справочна стойност, т.е. за коя стойност търсим мястото. В този случай търсим мястото за „Mar“, което е в клетката C2, така че предоставете референтната клетка.

Следващият аргумент е справочен масив, т.е. в кой диапазон търсим позицията на търсеща стойност , за това доставяне на клетки от A2 до A6.

Последният аргумент ще бъде точно съвпадение, така че дайте 0.

Код:

Sub Match_Example1 () Range ("D2"). Value = Application.WorksheetFunction.Match (Range ("C2"). Value, Range ("A2: A6"), 0) End Sub

Добре, приключихме с формулата.

Пуснете кода през клавиша F5 и вижте какво получаваме.

Така че ние получихме резултата като 3, защото стойността “Mar” е на мястото на 3 -та позиция в диапазона от A2 до A6.

Тази функция MATCH може да осигури позицията на справочната стойност. Функцията MATCH обаче се използва до голяма степен с функцията VLOOKUP за предоставяне на индексния номер на колоната въз основа на заглавката на колоната.

Пример # 2

Сега ще видим как да използваме MATCH като поддържаща функция за функцията VLOOKUP.

Погледнете данните по-долу.

В горната таблица разглеждаме продажбите за месец февруари 2018 г., така че трябва да използваме функцията VLOOKUP. VLOOKUP също е функция на работен лист, така че имайте достъп до това като начина, по който имаме достъп до функцията MATCH.

Справочната стойност ще бъде G2 клетка, така че посочете адреса на клетката.

Код:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value, End Sub

Table Array will be from A2 to D6.

Code:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value,Range("A2:D6"), End Sub

Now we need to provide from which column of the table array we are looking for the result, so this will be from the 3rd column. Instead of supplying the column number as 3, let’s use the MATCH function.

Code:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value, Range("A2:D6"), Application.WorksheetFunction.Match(Range("H1").Value, Range("A1:D1"), 0), 0) End Sub

Така че функцията MATCH предоставя номера на колоната от диапазона A1 до D1 за месец февруари. Нека да стартираме кода и да видим как той автоматично получава номера на колони.

Ето, имаме резултат от колона номер 2 благодарение на автоматично подаване на номера на колона от функцията MATCH.

Неща за запомняне

  • Функцията MATCH търси позицията на справочната стойност в избраната таблица на масива.
  • Функцията MATCH се използва главно с функцията VLOOKUP за автоматично подаване на индексния номер на колоната, използвайки заглавие на колона.
  • Функцията MATCH се предлага като функция на работен лист във VBA.

Интересни статии...