VBA мач - Как да използвам функцията за съвпадение във VBA Excel? (Примери)

Както имаме Index и Match в работния лист като функции за търсене, ние също можем да използваме функции за съвпадение във VBA като функция за справка, тази функция е функция на работен лист и тя е достъпна от приложението. метод на работен лист и тъй като е функция на работен лист, аргументите за функцията Match са подобни на функцията на работен лист.

Функция за съвпадение на VBA

Функцията VBA Match търси позицията или номера на реда на търсената стойност в масива на таблицата, т.е. в основната таблица на Excel.

В работен лист функциите за търсене са неразделна част от Excel. Някои от важните функции за търсене са VLOOKUP, HLOOKUP, INDEX и MATCH. За съжаление нямаме тези функции като функции на VBA. Въпреки това можем да ги използваме като функции на работния лист във VBA.

В тази статия ще ви покажа как да използвате една от функциите за търсене на работен лист MATCH във VBA като функция на работен лист.

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

Ще ви покажем прост пример за използване на функцията Excel MATCH във VBA.

Пример # 1

Във VBA можем да използваме тази формула MATCH в Excel като функция на работен лист. Следвайте стъпките по-долу, за да използвате функцията MATCH във VBA.

Стъпка 1: Създайте подпроцедура, като дадете име на макрос.

Код:

Подсъвпадение_Пример1 ()

Стъпка 2: В клетка E2 се нуждаем от резултата, така че стартирайте кода като Range (“E2”). Value =

Код:

Sub Match_Example1 () Диапазон ("E2"). Стойност = Край Sub

Стъпка 3: В E2 стойността на клетката трябва да е резултат от формулата MATCH. Така че, за да осъществим достъп до функцията VBA MATCH, първо трябва да използваме свойството “WorksheetFunction”. В това свойство ще получим целия наличен списък с функции на работния лист.

Стъпка 4: Изберете функцията MATCH тук.

Код:

Sub Match_Example1 () Диапазон ("E2"). Стойност = WorksheetFunction.Match (End Sub

Стъпка 5: Сега проблемът започва, защото не получаваме точното име на синтаксиса. По-скоро получаваме синтаксис като „Arg1, Arg2, Arg3“ по този начин. Затова трябва да сте абсолютно сигурни в синтаксисите тук.

Първият ни аргумент е LOOKUP VALUE. НАШАТА ТЪРСЕНА СТОЙНОСТ е в клетката D2, така че изберете клетката като диапазон („D2“) .

Код:

Sub Match_Example1 () Range ("E2"). Value = WorksheetFunction.Match (Range ("D2"). Value, End Sub

Стъпка 6: Вторият аргумент е табличен масив. Нашата гама от масиви е от A2 до A10. Така че изберете обхвата като „Обхват (“ A2: A10 ”)”

Код:

Sub Match_Example1 () Range ("E2"). Value = WorksheetFunction.Match (Range ("D2"). Value, Range ("A2: A10"), End Sub

Стъпка 7: Сега, последният аргумент е MATCH TYPE. Имаме нужда от точно съвпадение, така че въведете стойността на аргумента като нула.

Код:

Sub Match_Example1 () Range ("E2"). Value = WorksheetFunction.Match (Range ("D2"). Value, Range ("A2: A10"), 0) End Sub

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

Пример # 2 - VBA мач от друг лист

Да приемем, че един и същ набор от данни от горепосочените се намира на два различни листа. Например масивът на таблицата е в името на листа, наречен „Лист с данни“, а Справочната стойност е в името на листа, наречен „Резултатен лист“.

В този случай трябва да посочим работните листове по неговото име, преди да се позовем на диапазоните. По-долу е даден набор от кодове с имена на листове.

Код:

Sub Match_Example2 () Листове ("Лист с резултати"). Диапазон ("E2"). Стойност = WorksheetFunction.Match (Листове ("Лист с резултати"). Диапазон ("D2"). Стойност, Листове ("Лист с данни"). Обхват ("A2: A10"), 0) Край Sub

Пример # 3 - Функция за съвпадение на VBA с цикли

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

Да предположим, че имате данни като тази.

В тези случаи е херкулесова задача да напишете дълги кодове, така че преминаваме към цикли. По-долу е даден набор от кодове, които ще свършат работа вместо нас.

Код:

Sub Match_Example3 () Dim k като цяло число за k = 2 до 10 клетки (k, 5). Стойност = Работен лист Функция. Съвпадение (клетки (k, 4). Стойност, диапазон ("A2: A10"), 0) Следващ k Край Под

Този набор от кодове ще получи резултата само с едно мигване.

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