Kuidas kasutada INDEX MATCHi Excel VBAga

  • Jaga Seda
Hugh West

Saate kasutada sisseehitatud Exceli töölehe funktsioone, nagu näiteks VLOOKUP funktsioon ... Vali funktsioon ja PMT funktsioon oma VBA koodis ja rakendustes samuti. Tegelikult on enamik Excel töölehe funktsioonid on kättesaadavad ja neid saab kasutada VBA kood . näiteks kasutada INDEX &; MATCH töölehe funktsioonid Exceli VBA koodis.

Miks peaksite kasutama Excel Tööleht funktsioonid teie VBA kood ? Noh, et laiendada kasutatava koodi funktsionaalsust. Samuti ei pea te välja mõtlema oma funktsioone, kui teil pole seda tõesti vaja, kui funktsionaalsus on juba olemas. Põhimõtteliselt on teil vaja ainult pääseda ligi vajalikule funktsioonile, kuna see on juba olemas ja siis ei ole vaja ratast uuesti leiutada.

Niisiis, alustame näitega, mis näitab, kuidas kasutada INDEX MATCH koos Exceli VBAga.

Me kavatseme kasutada INDEX ja MATCH Funktsioonid aadressil Excel VBA kood , et luua lihtne UserForm. Vormi abil valib kasutaja õpilase nime, seejärel hangitakse ja tagastatakse nimetatud õpilase vastav sugu ja silmavärv.

Lae alla praktiline töövihik

Palun laadige alla harjutusvihik, et ise harjutada.

INDEX-MATCH.xlsx

9 lihtsat sammu INDEXi ja MATCHi kasutamiseks VBA koodis

The INDEX ja MATCH Funktsioone kasutatakse tihti kombinatsioonis valemites, et teha täiustatud otsinguid. Need kaks koos pakuvad teatavaid eeliseid võrreldes järgmisega VLOOKUP .

Me oleme juba üksikasjalikult käsitlenud, kuidas kasutada INDEX ja MATCH et teha täiustatud otsinguid Excel töövihik otsese töölehe valemina, mis on eelmine õpetus Nüüd vaatame, kuidas kasutada INDEX ja MATCH Funktsioonid koos VBA kood , et anda sarnane funktsionaalsus otsingule. UserForm mida me kavatseme luua.

Step1: Rakenda INDEX ja MATCH funktsioone andmekogumisse

  • Alustame oma makrofunktsiooniga töövihikus kahe lehega. Üks on tühi leht nimega UserForm , teine on leht nimega StudentInformation , mis sisaldab vahemikku, mis näitab õpilaste nimed, nende vastav sugu ja silmade värvus nagu allpool näidatud.

Tuletame endale kiiresti meelde, kui me tahaksime kasutada INDEX ja MATCH Funktsioonid ühes valemis, tegelikul töölehel, et anda meile õpilase nime sugu, mida me tahame otsida. Kasutaksime järgmist valemit:

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

  • Vajutades CTRL-ENTER , saame väärtuse Naised tagasi, kui sugu, nagu allpool näidatud.

Samm 2: Muuda B veeru nimi StudentNames'iks

  • Nimetame nüüd vahemiku A2: A31 , StudentNames nagu allpool näidatud.

  • Peida StudentInformation leht, tehes paremklõpsu ja valides Peida. Hea mõte on pealiskaudselt peita tagakülje töölehed, mis sisaldavad teavet, mida te ei soovi, et kasutaja redigeeriks või näeks.

Samm 3: Avage Visual Basic aken

  • Nüüd, kui UserForm leht on aktiveeritud, läheme me Arendaja> Kood> Visual Basic et avada Visual Basic Editor (VBE) .
  • Ükskord on VBE liides , läheme Insert, UserForm nagu allpool näidatud.

Samm 4: Muuda omadusi ja lisa tekstiväljad

  • Kasutades Omadused Aken , nimetame meie vormi ümber StudentLookup , muutke pealkirja Lookup Student Information, muutke valikut BackColor helesiniseks ja määra kõrgus 300 px ja laius 350 px. Kui omaduste aken ei ilmu, vajutage nuppu F4 klaviatuuril, et seda näha.

  • Nüüd sisestame sildi, kasutades Tööriistakast (kui te ei näe tööriistakasti, minge mingil põhjusel vaatesse View, Tööriistakast ), muudame pealkirja Choose a student ja me muudame BackColor sel juhul valgeks. Seame kirjastiili väärtuseks Gruusia , kirjastiili bold , kirjasuurus kuni 12 ja keskus joondada teksti. Kasutatakse eriefekti 1- fmSpecialEffectRaised nagu allpool näidatud.

  • Nüüd lisame sildi alla kombineeritud lahtri. Nimetame selle kombineeritud lahtri cmdStudentName ja jaoks RowSource , tüüp StudentNames.

  • Selleks, et näha mõju, mis on seatud RowSource kombinatsioonikastist, Klõpsake jooksu Sub/UserForm nupp .
  • Nüüd, kuna seadistamise tõttu RowSource nimetatud vahemikku, siis kui kasutaja klõpsab UserFormi rippnoolel, näitab kombineeritud kast automaatselt õpilaste nimesid nimetatud vahemikust, nagu allpool näidatud.

  • Sulgege UserForm, klõpsates nupul Close. Vajutage Alt-F11 et minna tagasi VBE .
  • Kui tagasi VBE , lisage UserFormile veel üks silt (kombineeritud kasti all) ja muutke sildi Pealkiri aadressile Sugu ja me muudame BackColor sel juhul valgeks. Seame kirjastiili väärtuseks Gruusia , kirjastiili bold , kirjasuurus kuni 12 ja keskus joondada teksti. Kasutatakse eriefekti 1- fmSpecialEffectRaised nagu allpool näidatud.

  • Loo tekstikast allpool Sugu silt ja nimetage see txtGender .
  • Lisa teine etikett nimega Silma Värv ja tekstivälja nimega txtEyeColour nagu allpool näidatud. Kasutage sildi jaoks samad omadused kui kahe teise eelnevalt vormile lisatud sildi jaoks, et tagada, et UserForm on ühtne välimus.

  • Nüüd Valige kõik juhtimisseadmed, mis on lisatud UserForm , kasutades seni juhtimisklahvi.

  • Keskus horisontaalselt, nagu allpool näidatud.

Loe edasi: Kuidas kasutada INDEX MATCH valemit Excelis (9 näidet)

Sarnased lugemised

  • Excel INDEX MATCH Kui lahter sisaldab teksti
  • Kuidas kasutada INDEX-MATCH valemit Excelis mitme tulemuse genereerimiseks
  • Indeksi sobitamine mitme rea summa Excelis (3 võimalust)
  • Õppige Exceli VBA programmeerimist ja makros (tasuta õpetus - samm-sammult)
  • 22 makro näited Excel VBAs

Samm 5: Nupu lisamine tööriistakastist

  • Järgmine, Lisa nuppu vormile, kasutades Tööriistakast . Muuda . Nimi nuppu, et cmdLookUp ... BackColor heleoranžiks, hoidke Tahoma font ja muuta stiil, et bold , lõpuks muuta Pealkiri nuppu, et Vaata üles Õpilane Üksikasjad nagu allpool näidatud.

6. samm: VBA-koodi sisestamine

  • Parempoolne klõps , äsja lisatud nuppu ja valige Vaata Kood .

  • Sisestage järgmine kood nupu klõpsu sündmuse jaoks:

 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 

Alustame sellega, et deklareerime kolm muutujad ja määrates nendele deklareeritud variandi andmetüüpidele variandi andmetüübi. Variandi andmetüüp on hea andmetüüp, millega alustada. Sest kui töötatakse koos tööleht funktsioonid , ei pruugi te alati olla kindel väljundite osas. Seetõttu kasutage alustades variandi andmetüüpi.

Hiljem on soovitav kasutada mõnda teist spetsiifilisemat andmetüüpi, näiteks täisarv või string. Edasijõudnud pikema koodi puhul ei kasuta variandi andmetüüp mälu nii tõhusalt kui teised andmetüübid.

Muutuja a joonistab väärtuse valikust, mille kasutaja valib rippmenüüst combo box'is olevasse UserForm Kui valikut ei ole, siis on kõik teised tekstiväljad tühi .

Kui valite õpilase nime valikust Combo kast kohta UserForm, siis muutuja b joonistab väärtuse, kasutades INDEX Tööleht Funktsioon koos funktsiooniga MATCH Funktsioon aastal VBA kood, nagu näidatud.

See otsib väärtust, kasutades põhimõtteliselt sama süntaksit kui töölehe funktsioon. Kui kasutate töölehe funktsioonide puhul VBA ... VBA IntelliSense sel konkreetsel juhul ei ole väga intuitiivne , seetõttu on soovitatav tundma õppida töölehelt saadud süntaksit. Muutuv c tõmbab väärtuse, kasutades INDEX Tööleht Funktsioon koos MATCH Funktsioon aastal VBA kood, kui kasutaja valib kombinatsioonikastist valiku.

Muutuja b saavutab väärtuse sugu veerg töölehel, samas kui muutuja c saab väärtuse töölehe veerust Eye color.

Sooline tekstikast on täidetud b väärtust ja silmavärvi tekstikast on täidetud tekstiga c väärtus.

Loe edasi: Exceli VBA sündmused (täielik juhend)

Samm 7: käsunupu sisestamine

  • Nüüd minge töölehele nimega UserForm teie töövihikus. Formaat seda, nagu allpool näidatud, ja sisestada pilt, mille on esitanud ExcelWIKI .

  • Mine edasi Arendaja> Kontroll> Sisestamine> ActiveX-kontroll.

  • Sisesta nuppu, nagu näidatud.

  • Nupu valimisel, minna Arendaja> Kontroll> Omadused .

  • Muuda . Nimi nuppu, et cmdShowForm ja Pealkiri aadressile Vaata Õpilaste teave .

Samm 8: Vaata otsingukoodi

  • Parempoolne klõps nuppu ja valige Vaata koodi nagu allpool näidatud.

  • Sisestage järgmine kood:
 Private Sub cmdShowForm_Click() StudentLookup.Show End Sub 

Samm 9: Lõpliku tulemuse väljapanek

  • Tagasi et tööleht. Veenduge, et märkimata Disain Režiim .
  • Klõpsake nuppu, et näidata vormi.

  • Valige õpilase nimi, kasutades Kombinatsioonikast Kood tagastab õpilase soo ja silmavärvi automaatselt.

Pea meeles, et Salvesta teie töövihik kui makrotoimingutega töövihik , kui te pole seda veel teinud ja seal on see, me kasutame INDEX & MATCH töölehe funktsioonid Exceli VBA koodis et luua otsinguvorm.

Loe edasi: Exceli INDEX-MATCH-valem mitme väärtuse horisontaalselt tagastamiseks

Kokkuvõte

Excelil on palju kasulikke töölehe funktsioonid , mida saab kasutada VBA , nagu näiteks, kasutades INDEX &; MATCH töölehe funktsioonid Exceli VBA koodis. Need funktsioonid võimaldavad teil laiendada oma VBA kood. Kui te juba teate, kuidas nad töötavad tavalises Excel tööleht siis õppimiskõver ei olegi nii suur, kohandades teadmisi jaoks VBA . töölehe funktsioonidele juurdepääs, oma VBA kood võib olla tõeline aja kokkuhoid. Sest ei pea arendama kohandatud funktsioone juba olemasoleva funktsionaalsuse jaoks.

Palun kommenteerige julgelt ja öelge meile, kui kasutate oma VBA-koodis ja rakendustes töölehefunktsioone.

Läbivaatamise osa: testige oma arusaamist

1) Seadistage veerus A lihtne nimekiri kolmest esemest, nimelt mandariinid, porgandid ja apelsinid, seejärel loetlege veerus B iga eseme kõrval olevas lahtris, kas veerus A olevad esemed on puuviljad või köögiviljad, kui olete lõpetanud oma näidisandmete seadistamise, kasutage funktsiooni INDEX & MATCH kombinatsioonifunktsioon, mis annab teada, kas porgandid on puuviljad või köögiviljad.

2) Kasutage seda ESPN-i andmekogumit NFL-i peatreenerite ja vastava meeskonna kohta, mida nad treenivad. Looge kasutaja vorm, mis võimaldab kasutajal sisestada teatud treeneri nime tekstikasti. Seejärel laske tema poolt treenitav meeskond esitada teises tekstikastis, kui kasutaja vajutab nuppu submit. Kasutage INDEX & MATCH töölehe funktsioonikombinatsiooni oma VBA-koodis.

Hugh West on suurte kogemustega Exceli koolitaja ja analüütik, kellel on selles valdkonnas üle 10-aastane kogemus. Tal on raamatupidamise ja rahanduse bakalaureusekraad ning ärijuhtimise magistrikraad. Hugh’l on kirg õpetamise vastu ning ta on välja töötanud ainulaadse õpetamisviisi, mida on lihtne järgida ja mõista. Tema Exceli ekspertteadmised on aidanud tuhandetel õpilastel ja spetsialistidel üle maailma oma oskusi parandada ja karjääris silma paista. Oma ajaveebi kaudu jagab Hugh oma teadmisi maailmaga, pakkudes tasuta Exceli õpetusi ja veebikoolitusi, mis aitavad üksikisikutel ja ettevõtetel oma potentsiaali täielikult ära kasutada.