Як выкарыстоўваць INDEX MATCH з Excel VBA

  • Падзяліцца Гэтым
Hugh West

Вы можаце выкарыстоўваць убудаваныя функцыі табліцы Excel, такія як функцыя VLOOKUP , функцыя CHOOSE і функцыя PMT у вашым кодзе і праграмах VBA таксама. Фактычна, большасць функцый аркуша Excel можна атрымаць і выкарыстоўваць у VBA кодзе . Як выкарыстоўваць INDEX & MATCH Функцыі працоўнага ліста ў кодзе Excel VBA.

Чаму вы хочаце выкарыстоўваць функцыі Excel Рабочага ліста ў вашым VBA код ? Ну каб пашырыць функцыянальнасць кода, які вы выкарыстоўваеце. Акрамя таго, вам не трэба прыдумляць свае ўласныя функцыі, за выключэннем выпадкаў, калі гэта сапраўды неабходна, калі функцыя ўжо ёсць. Усё, што вам у асноўным трэба зрабіць, гэта атрымаць доступ да патрэбнай вам функцыі, бо яна ўжо ёсць, і тады няма неабходнасці вынаходзіць ровар.

Такім чынам, давайце пачнем з прыкладу, які паказвае, як выкарыстоўваць INDEX  MATCH з Excel VBA.

Мы збіраемся выкарыстоўваць функцыі INDEX і MATCH у Excel VBA код , каб стварыць простую UserForm. Карыстаючыся формай, карыстальнік выбірае імя студэнта, а затым знаходзіць і вяртае адпаведны пол студэнта і колер вачэй.

Спампуйце вучэбны сшытак

Калі ласка, спампуйце практычны сшытак на папрактыкуйцеся.

INDEX-MATCH.xlsx

9 простых крокаў для выкарыстання INDEX і MATCH у кодзе VBA

INDEX і MATCH Функцыі часта выкарыстоўваюцца ў камбінацыі ў формулах для выканання пашыранага пошуку. Гэтыя два ў спалучэнні даюць пэўныя перавагі перад VLOOKUP .

Мы ўжо падрабязна разглядалі, як выкарыстоўваць INDEX і MATCH для прасунутых пошуку ў Excel рабочай кнізе як простая формула працоўнага аркуша, у папярэднім падручніку . Зараз мы паглядзім, як выкарыстоўваць функцыі INDEX і MATCH разам у VBA кодзе , каб надаць падобныя функцыі пошук UserForm , які мы збіраемся стварыць.

Крок 1: Прымяненне функцый INDEX і MATCH у наборы даных

  • Мы пачынаем з двух аркушаў у нашым макрасе -уключаная працоўная кніга. Адзін - гэта пусты аркуш пад назвай UserForm , другі - гэта аркуш пад назвай Student Information , які змяшчае дыяпазон, які паказвае імёны студэнтаў, іх адпаведны пол і колер вачэй як паказана ніжэй.

Давайце хутка нагадаем сабе, ці хочам мы выкарыстоўваць INDEX і MATCH Функцыі ў адной формуле на працоўным аркушы, каб даць нам пол імя студэнта, якога мы хочам знайсці. Мы будзем выкарыстоўваць наступную формулу:

=INDEX(B2:B31, MATCH("Diana Graham", A2:A31, 0))

  • Пасля націску CTRL-ENTER , мы атрымліваем вернутае значэнне Females у якасці полу, як паказана ніжэй.

Крок 2: Зменіце назву слупка B на StudentNames

  • Цяпер мы назавем дыяпазон A2: A31 , StudentNames , як паказана ніжэй.

  • Схавайце аркуш Інфармацыя пра навучэнца , пстрыкнуўшы правай кнопкай мышы і выбраўшы Схаваць. Добрай ідэяй будзе павярхоўна схаваць аркушы, якія змяшчаюць інфармацыю, вы не хочаце, каб карыстальнік рэдагаваў або праглядаў.

Крок 3: Адкрыйце акно Visual Basic

  • Цяпер з актываваным аркушам UserForm мы пяройдзем да Распрацоўшчык > Код > Visual Basic , каб адкрыць Рэдактар ​​Visual Basic (VBE) .
  • У інтэрфейсе VBE мы пераходзім да Insert, UserForm, як паказана ніжэй .

Крок 4: Змяніце ўласцівасці і дадайце тэкставыя палі

  • Выкарыстоўваючы акно Уласцівасці , мы перайменуем нашу форму ў StudentLookup , зменім Caption на Lookup Student Information, зменім BackColor на светла-блакітны і ўсталюем вышыню 300 пікселяў і шырынёй да 350 пікселяў. Калі акно ўласцівасцей не адлюстроўваецца, націсніце клавішу F4 на клавіятуры, каб убачыць яго.

  • Мы зараз уставіць ярлык з дапамогай Панель інструментаў (калі вы не бачыце Панэль інструментаў, па нейкай прычыне перайдзіце ў Прагляд, Панэль інструментаў ), змяніце Загаловак на Выбраць студэнта, і мы зменім У гэтым выпадку BackColor да белага. Мы ўсталюем шрыфт Georgia , стыль шрыфта тоўсты , памер шрыфта 12 і цэнтр выраўнаваць тэкст. Выкарыстаны спецыяльны эфект будзе 1– fmSpecialEffectRaised , як паказана ніжэй.

  • Цяпер мы ўставім поле са спісам ніжэй ярлык. Назавіце гэта поле са спісам cmdStudentName і для RowSource увядзіце StudentNames.

  • Каб убачыць эфект усталявання RowSource у полі са спісам, Націсніце кнопку Run Sub/UserForm .
  • Цяпер з-за ўсталявання RowSource у названы дыяпазон, калі карыстальнік націскае на стрэлку выпадальнага меню ў UserForm, поле са спісам аўтаматычна паказвае імёны студэнтаў з названага дыяпазону, як паказана ніжэй.

  • Зачыніце UserForm, націснуўшы на кнопку закрыцця. Націсніце Alt-F11 , каб вярнуцца да VBE .
  • Вярнуўшыся ў VBE , дадайце іншую метку ў UserForm ( пад полем са спісам) і змяніце Caption на Gender , і мы зменім BackColor на белы ў гэтым выпадку. Мы ўсталюем шрыфт Georgia , стыль шрыфта тоўсты , памер шрыфта 12 і цэнтр выраўнуем тэкст . Выкарыстаны спецыяльны эфект будзе 1– fmSpecialEffectRaised , як паказана ніжэй.

  • Стварыць тэкставае поле ніжэй Пол меткі і назавіце яе txtGender .
  • Дадайце іншую метку пад назвай Вока Колер і тэкставае поле з імем txtEyeColour , як паказана ніжэй. Выкарыстоўвайце тыя ж уласцівасці для этыкеткі, што і для дзвюх іншых этыкетак, раней дададзеных да формы, каб пераканацца, што UserForm мае аднастайны выгляд.

  • Цяпер Абярыце ўсе элементы кіравання, дададзеныя ў UserForm , дагэтуль выкарыстоўваючы клавішу кіравання.

  • У цэнтры па гарызанталі, як паказана ніжэй.

Чытаць Больш: Як выкарыстоўваць формулу INDEX MATCH у Excel (9 прыкладаў)

Падобныя паказанні

  • Excel INDEX MATCH, калі ячэйка ўтрымлівае тэкст
  • Як выкарыстоўваць формулу INDEX-MATCH у Excel для генерацыі некалькіх вынікаў
  • Індэкс супадзення сумы некалькіх радкоў у Excel (3 спосабы)
  • Вывучыце праграмаванне Excel VBA & Макрасы (бясплатны падручнік – крок за крокам)
  • 22 прыклады макрасаў у Excel VBA

Крок 5: Дадайце кнопку з панэлі інструментаў

  • Далей, Дадайце кнопку ў форму з дапамогай Панелі інструментаў . Змяніце Імя кнопкі на cmdLookUp , BackColor на светла-аранжавы, захавайце шрыфт Tahoma і змяніце стыль на тлусты , нарэшце зменіце Подпіс кнопкі на Погляд уверх Студэнт Падрабязнасці , як паказана ніжэй.

Крок 6: Устаўце код VBA

  • Пстрыкніце правай кнопкай мышы , нядаўна дададзеную кнопку і выберыце Прагляд Код .

  • Увядзіце наступны код для кнопкі click event:

4995

Мы пачынаем з аб'явы трох зменных і прысваення тыпу даных варыянту гэтым заяўленым варыянтныя тыпы даных. Тып даных variant - добры тып даных для пачатку. Таму што пры працы з рабочым аркушам функцыямі вы не заўсёды можаце быць упэўненыя ў выніках. Таму выкарыстоўвайце варыянтны тып даных, калі вы пачынаеце.

Пазней пажадана выкарыстоўваць адзін з іншых больш канкрэтных тыпаў даных, напрыклад цэлае ці радок. Для больш прасунутага даўжэйшага кода варыянтны тып даных не выкарыстоўвае памяць так эфектыўна, як іншыя тыпы даных.

Пераменная a выцягвае значэнне з опцыі, якую карыстальнік выбірае ў выпадальнае поле са спісам у UserForm . Калі выбару няма, то ўсе іншыя тэкставыя палі пустыя .

Калі вы выбіраеце імя студэнта з камбінаванага спісу поля на UserForm, затым зменная b атрымлівае значэнне з дапамогай функцыі INDEX Worksheet у спалучэнні з MATCH Function у код VBA , як паказана.

Ён шукае значэнне, выкарыстоўваючы ў асноўным той жа сінтаксіс, што і функцыя працоўнага аркуша. Пры выкарыстанні функцый аркуша ў VBA VBA IntelliSense у гэтым канкрэтным выпадку не вельмі інтуітыўна зразумелы , таму знаёмства зрэкамендуецца сінтаксіс, узяты з ведаў працоўнага ліста. Пераменная c малюе значэнне, выкарыстоўваючы INDEX Працоўны ліст функцыю ў спалучэнні з MATCH функцыю у кодзе VBA , калі карыстальнік выбірае параметр са спісу.

Зменная b атрымлівае значэнне з полу слупок на аркушы, у той час як пераменная c атрымлівае значэнне са слупка "Колер вачэй" на аркушы.

Тэкставае поле для полу запаўняецца b значэнне, а тэкставае поле колеру вачэй запаўняецца значэннем c .

Больш падрабязна: Падзеі Excel VBA (поўнае кіраўніцтва)

Крок 7: Устаўце камандную кнопку

  • Цяпер перайдзіце да аркуша з назвай UserForm у вашай кнізе. Адфарматуйце яго, як паказана ніжэй, і ўстаўце відарыс, прадстаўлены ExcelWIKI .

  • Перайсці да Распрацоўшчык > Элементы кіравання > Уставіць > Элементы кіравання ActiveX.

  • Устаўце кнопку, як паказана.

  • Выбраўшы кнопку, перайдзіце да Распрацоўшчык > Элементы кіравання > Уласцівасці .

  • Змяніце Імя кнопкі на cmdShowForm і Caption для Lookup Student Information .

Крок 8: Прагляд Пошукавы код

  • Пстрыкніце правай кнопкай мышы кнопку і выберыце Праглядзець код , як паказананіжэй.

  • Увядзіце наступны код:
2771

Крок 9: Паказаць канчатковы вынік

  • Вярнуцца да рабочага ліста. Пераканайцеся, што не пазначаны Дызайн Рэжым .
  • Націсніце кнопку, каб паказаць форму.

  • Выбраць імя студэнта з дапамогай камбінаванага поля . Код аўтаматычна верне пол і колер вачэй вучня.

Не забудзьце захаваць вашу працоўную кнігу як працоўную кнігу з падтрымкай макрасаў. , калі вы гэтага яшчэ не зрабілі, мы выкарыстоўваем INDEX & Функцыі аркуша MATCH у кодзе VBA Excel для стварэння формы пошуку.

Больш падрабязна: Формула INDEX-MATCH Excel для вяртання некалькіх значэнняў па гарызанталі

Выснова

Excel мае шмат карысных функцый працоўнага ліста , якія можна выкарыстоўваць у VBA , напрыклад, з дапамогай INDEX & MATCH Worksheet Functions in Excel VBA code. Гэтыя функцыі дазволяць вам пашырыць ваш VBA код. Калі вы ўжо ведаеце, як яны працуюць у стандартным Excel працоўны аркуш, то крывая навучання не такая вялікая, адаптуючы веды для VBA . Доступ да функцый аркуша ў VBA кодзе можа рэальна зэканоміць час. Таму што не трэба распрацоўваць карыстальніцкія функцыі для функцыянальнасці, якая ўжо ёсць.

Калі ласка, не саромейцеся каментаваць і расказвацьнас, калі вы выкарыстоўваеце функцыі працоўнага ліста ў сваім кодзе і праграмах VBA.

Агляд раздзела: Праверце сваё разуменне

1) Наладзьце просты спіс у слупку A з трох пунктаў, а менавіта мандарынаў, морквы і апельсінаў , затым у ячэйцы побач з кожным элементам у слупку B пералічыце, ці з'яўляюцца элементы ў слупку A садавінай ці гароднінай. Пасля завяршэння наладжвання ўзораў дадзеных выкарыстоўвайце INDEX & Камбінаваная функцыя MATCH , каб вызначыць, ці з'яўляецца морква садавінай ці гароднінай.

2) Выкарыстоўвайце гэты набор даных ESPN аб галоўных трэнерах НФЛ і адпаведнай камандзе, якую яны трэніруюць. Стварыце карыстальніцкую форму, якая дазваляе карыстальніку ўводзіць імя пэўнага трэнера ў тэкставае поле. Затым дайце каманду, якую ён трэніруе, у іншым тэкставым полі, калі карыстальнік націскае «Адправіць». Выкарыстоўвайце INDEX & MATCH камбінацыя функцый аркуша ў вашым кодзе VBA.

Х'ю Уэст з'яўляецца вельмі дасведчаным трэнерам і аналітыкам Excel з больш чым 10-гадовым вопытам работы ў галіны. Ён мае ступень бакалаўра ў галіне бухгалтарскага ўліку і фінансаў і ступень магістра дзелавога адміністравання. Х'ю захапляецца навучаннем і распрацаваў унікальны падыход да навучання, які лёгка прытрымлівацца і зразумець. Яго экспертныя веды Excel дапамаглі тысячам студэнтаў і спецыялістаў па ўсім свеце палепшыць свае навыкі і атрымаць поспех у сваёй кар'еры. Праз свой блог Х'ю дзеліцца сваімі ведамі з усім светам, прапаноўваючы бясплатныя падручнікі па Excel і онлайн-трэнінгі, каб дапамагчы прыватным асобам і прадпрыемствам цалкам раскрыць свой патэнцыял.