Съдържание
Можете да използвате вградените функции на работния лист на Excel, като например Функция VLOOKUP . Функция CHOOSE и Функция PMT в кода и приложенията на VBA. Excel функциите на работния лист могат да се достъпват и използват в VBA код . Като използване INDEX & MATCH Функции на работния лист в Excel VBA код.
Защо искате да използвате Excel Работен лист функции във вашия VBA код ? Ами за да разширите функционалността на кода, който използвате. Освен това не е необходимо да измисляте свои собствени функции, освен ако наистина не е необходимо, ако функционалността вече е налице. Всичко, което трябва да направите, е да получите достъп до функцията, от която се нуждаете, тъй като тя вече е налице, и тогава няма нужда да изобретявате колелото.
Нека започнем с пример, който показва как да използвате INDEX MATCH с Excel VBA.
Ще използваме INDEX и MATCH Функции в Excel VBA код , за да се създаде прост формуляр UserForm. С помощта на формуляра потребителят избира име на ученик, след което се извлича и връща съответният пол на посочения ученик и цвят на очите.
Изтегляне на работна тетрадка за практика
Моля, изтеглете работната тетрадка, за да се упражнявате сами.
INDEX-MATCH.xlsx9 лесни стъпки за използване на INDEX и MATCH в кода на VBA
Сайтът INDEX и MATCH Функциите често се използват в комбинация във формулите, за да се извършват разширени търсения. Двете в комбинация предлагат някои предимства пред VLOOKUP .
Вече разгледахме подробно как да използвате INDEX и MATCH за извършване на разширени търсения в Excel работна книга като обикновена формула в работен лист, в предишен урок Сега ще видим как да използваме INDEX и MATCH Функции заедно в VBA код , за да се придаде подобна функционалност на функцията за търсене Потребителски формуляр ще създадем.
Стъпка 1: Прилагане на функциите INDEX и MATCH в набора от данни
- Започваме с два листа в нашата работна книга с активирани макроси. Единият е празен лист, наречен Потребителски формуляр , а другият е лист, наречен StudentInformation , която съдържа диапазон, показващ имената на учениците, съответния им пол и цвят на очите както е показано по-долу.
Нека бързо си припомним, че ако искахме да използваме INDEX и MATCH Функции в една формула, в действителния работен лист, за да ни даде пола на името на ученика, който искаме да потърсим. Ще използваме следната формула:
=INDEX(B2:B31, MATCH("Diana Graham", A2:A31, 0))
- При натискане на CTRL-ENTER , получаваме върнатата стойност Females като пол, както е показано по-долу.
Стъпка 2: Променете името на колона B в StudentNames
- Сега ще дадем име на обхвата A2: A31 , Имената на учениците както е показано по-долу.
- Скрийте StudentInformation лист, като щракнете с десния бутон на мишката и изберете Скрийте. Добра идея е да скриете повърхностно работните листове на гърба, които съдържат информацията, която не искате потребителят да редактира или вижда.
Стъпка 3: Отваряне на прозореца Visual Basic
- Сега, когато листът UserForm е активиран, отиваме в Програмист> Код> Visual Basic за да отворите Редактор на Visual Basic (VBE) .
- Веднъж в Интерфейс VBE , отиваме на Insert, UserForm, както е показано по-долу.
Стъпка 4: Промяна на свойствата и добавяне на текстови полета
- Използване на Имоти Прозорец , ще преименуваме формуляра си на StudentLookup , променете заглавието на Търсене на информация за ученика, променете BackColor на светлосиньо и задайте височина на 300 px, а ширината - на 350 px. Ако прозорецът със свойства не се показва, натиснете бутона F4 на клавиатурата, за да го видите.
- Сега ще вмъкнем етикет, като използваме Кутия с инструменти (ако по някаква причина не можете да видите Кутията с инструменти, отидете в Преглед, Кутия с инструменти ), променете заглавието на "Изберете ученик" и ще променим BackColor на бяло в този случай. Ще настроим шрифта на Грузия , стила на шрифта до удебелен шрифт , размера на шрифта на 12 , и център Използваният специален ефект ще бъде 1- fmSpecialEffectRaised както е показано по-долу.
- Сега ще вмъкнем кутия с комбинации под етикета. Наречете тази кутия с комбинации cmdStudentName и за RowSource , тип Имената на учениците.
- За да видите ефекта от задаването на RowSource на полето за избор, Кликнете върху Изпълнението Sub/UserForm бутон .
- Сега заради настройката на RowSource към посочения диапазон, когато потребителят щракне върху падащата стрелка на формата UserForm, комбинационният прозорец автоматично показва имената на учениците от посочения диапазон, както е показано по-долу.
- Затворете UserForm, като щракнете върху бутона за затваряне. Alt-F11 за да се върнете към VBE .
- След като се върна в VBE , добавете още един етикет към UserForm (под полето с комбинации) и променете Заглавие към Пол и ще променим BackColor на бяло в този случай. Ще настроим шрифта на Грузия , стила на шрифта до удебелен шрифт , размера на шрифта на 12 , и център Използваният специален ефект ще бъде 1- fmSpecialEffectRaised както е показано по-долу.
- Създаване на текстово поле под Пол етикет и го назовете txtGender .
- Добавяне на друг етикет, наречен Очи Цвят и текстово поле с име txtEyeColour както е показано по-долу. Използвайте същите свойства на етикета, както и на другите два етикета, добавени преди това към формуляра, за да се гарантира, че Потребителски формуляр има последователен вид.
- Сега Изберете всички контроли, добавени към Потребителски формуляр , като досега сте използвали клавиша за управление.
- Център хоризонтално, както е показано по-долу.
Прочетете още: Как да използвате формулата INDEX MATCH в Excel (9 примера)
Подобни четива
- Excel INDEX MATCH Ако клетката съдържа текст
- Как да използвате формулата INDEX-MATCH в Excel за генериране на множество резултати
- Индексно съвпадение на сумата на множество редове в Excel (3 начина)
- Научете Excel VBA програмиране & макроси (безплатен урок - стъпка по стъпка)
- 22 примера за макроси в Excel VBA
Стъпка 5: Добавяне на бутон от кутията с инструменти
- Следващия, Добавяне на бутон към формата с помощта на Кутия с инструменти . Промяна на Име на бутона, за да cmdLookUp . BackColor до светлооранжево, запазете Tahoma шрифт и промяна стила към удебелен шрифт , накрая променете Заглавие на бутона, за да Вижте нагоре Студент Подробности както е показано по-долу.
Стъпка 6: Вмъкване на код VBA
- Кликнете с десния бутон на мишката върху , новодобавения бутон, и изберете Вижте Код .
- Въведете следния код за събитието щракване върху бутона:
Dim a As Variant Dim b As Variant Dim c As Variant a = cmdStudentName.Value Sheets("StudentInformation").Activate If a = "" Then b = "" Let txtGender.Text = b c = "" Let txtEyeColour.Text = c Else b = Application.WorksheetFunction.Index(Sheets("StudentInformation").Range("B2:B31"), Application.WorksheetFunction.Match(a, Sheets("StudentInformation").Range("A2:A31"), 0)) c =Application.WorksheetFunction.Index(Sheets("StudentInformation").Range("C2:C31"), Application.WorksheetFunction.Match(a, Sheets("StudentInformation").Range("A2:A31"), 0)) Let txtEyeColour.Text = c End If
Започваме с деклариране на три променливи и присвояване на типа данни вариант към тези декларирани типове данни вариант. Типът данни вариант е добър тип данни за начало. Защото при работа с работен лист функции , невинаги можете да сте сигурни за изходите. Затова, когато започвате, използвайте типа данни вариант.
По-късно е препоръчително да се използва някой от другите по-специфични типове данни, като например цяло число или низ. При по-усъвършенстван дълъг код типът данни вариант не използва паметта толкова ефективно, колкото другите типове данни.
Променлива a извличане на стойността от опцията, която потребителят избира в падащото поле на Потребителски формуляр Ако няма избор, всички останали текстови полета са празен .
Ако изберете име на ученик от комбиниран кутия на UserForm, тогава променливата b получава стойност с помощта на INDEX Работен лист Функция в комбинация с MATCH Функция в VBA код, както е показано.
Тя търси стойността, като използва същия синтаксис като функцията на работния лист. Когато използвате функции на работния лист в VBA . VBA IntelliSense в този конкретен случай не е много интуитивен , поради което се препоръчва познаване на синтаксиса, придобит от знанията за работните листове. Променлива c черпи стойност с помощта на INDEX Работен лист Функция в комбинация с MATCH Функция в VBA код, когато потребителят избере опция от полето за избор.
Променлива b придобива стойност от пол колона в работния лист, докато променлива c получава стойност от колоната Цветът на очите в работния лист.
Текстовото поле за пол се попълва с b и текстовото поле за цвят на очите се попълва с c стойност.
Прочетете още: Събития в Excel VBA (пълно ръководство)
Стъпка 7: Вмъкване на команден бутон
- Сега отидете в работния лист, наречен Потребителски формуляр във вашата работна книга. Формат както е показано по-долу, и вмъкнете изображението, предоставено от ExcelWIKI .
- Отидете на Разработчик> Контроли> Вмъкване> ActiveX контроли.
- Вмъкване на бутон, както е показано.
- При избран бутон, отидете в Разработчик> Контроли> Свойства .
- Промяна на Име на бутона, за да cmdShowForm и Заглавие към Преглед на Информация за ученика .
Стъпка 8: Преглед на кода за търсене
- Кликнете с десния бутон на мишката върху бутона и изберете Вижте кода както е показано по-долу.
- Въведете следния код:
Private Sub cmdShowForm_Click() StudentLookup.Show End Sub
Стъпка 9: Излагане на крайния резултат
- Връщане на към работен лист. Уверете се, че не е поставена отметка Дизайн Режим .
- Кликнете върху бутона, за да се покаже формата.
- Изберете име на ученик с помощта на Комбинирано поле . Кодът ще върне автоматично пола и цвета на очите на ученика.
Не забравяйте да спаси вашата работна книга като работна книга с активирани макроси , ако все още не сте го направили и ето, че използваме Функции на работния лист INDEX & MATCH в кода на Excel VBA за да създадете форма за търсене.
Прочетете още: Формула INDEX-MATCH на Excel за връщане на множество стойности хоризонтално
Заключение
Excel има много полезни функции на работния лист , които могат да се използват в VBA , като като, като, като, като INDEX & MATCH Функции на работния лист в Excel VBA код. Тези функции ще ви позволят да разширите VBA код. Ако вече знаете как работят в стандартен Excel След това кривата на обучението не е толкова голяма, като се адаптират знанията за VBA . Достъп до функциите на работния лист, в VBA код защото не е необходимо да се разработват потребителски функции за функционалност, която вече е налична.
Моля, не се колебайте да коментирате и да ни кажете дали използвате функции на работния лист във вашия VBA код и приложения.
Раздел за преглед: Проверете разбирането си
1) Създайте прост списък в колона А от три елемента, а именно мандарини, моркови и портокали, след което в клетката до всеки елемент в колона Б посочете дали елементите в колона А са плодове или зеленчуци, след като приключите със създаването на извадката, използвайте INDEX & MATCH комбинирана функция за определяне на това дали морковите са плодове или зеленчуци.
2) Използвайте този набор от данни от ESPN за старши треньорите от NFL и съответния отбор, който те тренират. Създайте потребителска форма, която позволява на потребителя да въведе името на определен треньор в текстово поле. След това нека отборът, който той тренира, да се предостави в друго текстово поле, когато потребителят щракне върху бутона "Изпрати". INDEX & MATCH комбинация от функции на работния лист в кода VBA.