Kaip naudoti INDEX MATCH su "Excel VBA

  • Pasidalinti
Hugh West

Galite naudoti integruotas "Excel" darbalapio funkcijas, pvz. VLOOKUP funkcija . Funkcija CHOOSE ir PMT funkcija VBA kode ir programose. "Excel" darbalapio funkcijas galima pasiekti ir naudoti VBA kodas . Kaip ir naudoti INDEX & amp; MATCH darbalapio funkcijos "Excel" VBA kode.

Kodėl norėtumėte naudoti "Excel" Darbalapis funkcijas savo VBA kodas ? Gerai išplėsti naudojamo kodo funkcionalumą. Be to, jums nereikia kurti savo funkcijų, nebent jums tikrai reikia, jei funkcionalumas jau yra. Iš esmės jums tereikia pasiekti reikiamą funkciją, nes ji jau yra, ir tada nereikia išradinėti dviračio.

Taigi, pradėkime nuo pavyzdžio, rodančio, kaip naudoti INDEX MATCH su "Excel VBA".

Mes ketiname naudoti INDEKSAS ir MATCH Funkcijos svetainėje "Excel" VBA kodas , kad sukurtų paprastą naudotojo formą. Naudodamasis šia forma naudotojas pasirenka mokinio vardą ir pavardę, tada surandama ir grąžinama atitinkama minėto mokinio lytis ir akių spalva.

Atsisiųsti praktikos sąsiuvinį

Atsisiųskite pratybų sąsiuvinį ir praktikuokitės patys.

INDEX-MATCH.xlsx

9 paprasti žingsniai, kaip naudoti INDEX ir MATCH VBA kode

Svetainė INDEKSAS ir MATCH Funkcijos dažnai naudojamos kartu formulėse, kad būtų galima atlikti išplėstines paieškas. VLOOKUP .

Jau išsamiai aprašėme, kaip naudoti INDEKSAS ir MATCH atlikti išplėstines paieškas "Excel" darbo knyga kaip tiesioginę darbalapio formulę, esančią ankstesnė pamoka Dabar pamatysime, kaip naudoti INDEKSAS ir MATCH Funkcijos kartu VBA kodas , kad paieškos funkcija būtų panaši į paieškos Naudotojo forma ketiname sukurti.

1 žingsnis: Duomenų rinkinio INDEX ir MATCH funkcijų taikymas

  • Pradedame nuo dviejų lapų mūsų darbaknygėje su makrokomandomis. Vienas iš jų yra tuščias lapas, pavadintas Naudotojo forma , kitas - lapas, vadinamas StudentInformation , kuriame yra diapazonas, rodantis mokinių vardai, atitinkama lytis ir akių spalva. kaip parodyta toliau.

Greitai prisiminkime, kad jei norėtume naudoti INDEKSAS ir MATCH Funkcijos vienoje formulėje, faktiniame darbalapyje, kad gautume mokinio, kurio vardo lytį norime surasti. Naudotume šią formulę:

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

  • Paspaudus CTRL-ENTER , gauname grąžinamą reikšmę Females kaip toliau parodytą lytį.

2 žingsnis: pakeiskite B stulpelio pavadinimą į StudentNames

  • Dabar pavadinsime diapazoną A2: A31 , StudentNames kaip parodyta toliau.

  • Paslėpti StudentInformation lape, spustelėdami dešiniuoju pelės klavišu ir pasirinkdami Paslėpti. Gera idėja - paviršutiniškai paslėpti galinius darbalapius, kuriuose pateikiama informacija, kurios nenorite, kad naudotojas redaguotų ar matytų.

3 žingsnis: atidarykite "Visual Basic" langą

  • Dabar, kai suaktyvintas lapas UserForm, eikite į Programuotojas> Kodas> Visual Basic kad atidarytumėte "Visual Basic" redaktorius (VBE) .
  • Kai VBE sąsaja , einame į Insert, UserForm, kaip parodyta toliau.

4 veiksmas: pakeiskite savybes ir pridėkite teksto langelius

  • Naudojant Savybės Langas , savo formą pervadinsime į StudentLookup , pakeiskite antraštę į Informacijos apie studentą paieška, pakeiskite "BackColor" į šviesiai mėlyną, o aukštį nustatykite į 300 px ir plotis į 350 px. Jei savybių langas nerodomas, paspauskite F4 klaviatūros klavišą, kad jį pamatytumėte.

  • Dabar įterpsime etiketę naudodami Įrankių dėžutė (jei dėl kokių nors priežasčių nematote įrankių dėžutės, eikite į View, Įrankių dėžutė ), pakeiskite antraštę į Pasirinkti mokinį ir pakeiskite "BackColor" šiuo atveju į baltą. Nustatysime šriftą į Gruzija , šrifto stilių į paryškintas , šrifto dydį į 12 , ir centras tekstą sulygiuoti. Naudojamas specialusis efektas bus 1- fmSpecialEffectRaised kaip parodyta toliau.

  • Dabar po etikete įterpsime kombaino langelį. Pavadinkite šį kombaino langelį cmdStudentName ir RowSource , tipas Studentų vardai.

  • Norint pamatyti, kokį poveikį daro nustatymas RowSource kombaino lange, Spustelėkite Bėgimas Sub/UserForm mygtukas .
  • Dabar dėl nustatymo RowSource į įvardytą intervalą, kai naudotojas paspaudžia išskleidžiamąją rodyklę naudotojo formoje, kombaino lange automatiškai rodomi mokinių vardai iš įvardyto intervalo, kaip parodyta toliau.

  • Uždarykite naudotojo formą spustelėdami uždarymo mygtuką. Alt-F11 kad galėtumėte grįžti į VBE .
  • Grįžę į VBE , pridėkite dar vieną etiketę prie UserForm (po kombaino langeliu) ir pakeiskite Antraštė į Lytis ir pakeisime "BackColor" šiuo atveju į baltą. Nustatysime šriftą į Gruzija , šrifto stilių į paryškintas , šrifto dydį į 12 , ir centras tekstą sulygiuoti. Naudojamas specialusis efektas bus 1- fmSpecialEffectRaised kaip parodyta toliau.

  • Sukurti teksto laukelį po Lytis etiketė ir pavadinkite jį txtGender .
  • Pridėti kitą etiketę, vadinamą Akis Spalva ir teksto langelį, pavadintą txtEyeColour kaip parodyta toliau. Naudokite tas pačias etiketės savybes kaip ir kitų dviejų anksčiau į formą pridėtų etikečių, kad būtų užtikrinta, jog Naudotojo forma turi nuoseklią išvaizdą.

  • Dabar Pasirinkite visus valdiklius, pridėtus prie Naudotojo forma , iki šiol naudodami valdymo klavišą.

  • Centras horizontaliai, kaip parodyta toliau.

Skaityti daugiau: Kaip naudoti INDEX MATCH formulę programoje "Excel" (9 pavyzdžiai)

Panašūs skaitiniai

  • "Excel" INDEX MATCH Jei ląstelėje yra tekstas
  • Kaip naudoti INDEX-MATCH formulę programoje "Excel", kad būtų generuojami keli rezultatai
  • Kelių eilučių indeksų atitikmenų suma "Excel" programoje (3 būdai)
  • Išmokite "Excel" VBA programavimo ir makrokomandų (nemokama pamoka - žingsnis po žingsnio)
  • 22 "Excel VBA" makrokomandų pavyzdžiai

5 veiksmas: Pridėti mygtuką iš įrankių dėžutės

  • Kitas, Pridėti formos mygtuką, naudodami Įrankių dėžutė . Keisti . Pavadinimas mygtuką, kad cmdLookUp . "BackColor" į šviesiai oranžinę spalvą, laikykite Tahoma šriftas ir keisti stilių į paryškintas , galiausiai pakeiskite Antraštė mygtuką, kad Žiūrėkite iki Studentas Išsami informacija kaip parodyta toliau.

6 veiksmas: įterpkite VBA kodą

  • Dešiniuoju pelės klavišu spustelėkite , naujai pridėtą mygtuką ir pasirinkite Peržiūrėti Kodas .

  • Įveskite šį kodą, skirtą mygtuko paspaudimo įvykiui:

 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 

Pradedame deklaruodami trys kintamieji ir priskiriant variantinį duomenų tipą šiems deklaruotiems variantiniams duomenų tipams. Variantinis duomenų tipas yra geras duomenų tipas, nuo kurio galima pradėti darbą, nes dirbant su darbalapis funkcijos , ne visada galite būti tikri dėl išvesties. Todėl pradėdami naudoti duomenų tipą variant, naudokite duomenų tipą variant.

Vėliau patartina naudoti vieną iš kitų konkretesnių duomenų tipų, pvz. sveikasis skaičius arba eilutė. Sudėtingesniame ilgesniame kode variantų duomenų tipas atmintį naudoja ne taip efektyviai kaip kiti duomenų tipai.

Kintamasis a nupiešti vertę iš parinkties, kurią naudotojas pasirenka išskleidžiamajame kombaino lange, esančiame Naudotojo forma Jei nėra pasirinkimo, visi kiti teksto langeliai yra tuščias .

Jei pasirinkote mokinio vardą iš Kombinuoti dėžutė apie UserForm, tada kintamasis b įgyja vertę naudodamas INDEKSAS Darbalapis Funkcija kartu su MATCH Funkcija į VBA kodas, kaip parodyta.

Ji ieško reikšmės naudodama iš esmės tokią pačią sintaksę kaip ir darbalapio funkcija. Naudojant darbalapio funkcijas VBA . VBA "IntelliSense" šiuo konkrečiu atveju nėra labai intuityvus , todėl rekomenduojama išmanyti sintaksę, įgytą iš darbalapio žinių. Kintamasis c atkreipia vertę naudodamas INDEKSAS Darbalapis Funkcija kartu su MATCH Funkcija į VBA kodas, kai naudotojas pasirenka parinktį iš kombaino langelio.

Kintamasis b įgyja vertę iš lytis stulpelis darbalapyje, o kintamasis c gauna reikšmę iš darbalapio stulpelio Akių spalva.

Teksto laukelis "Lytis" užpildomas b reikšmė, o akių spalvos tekstinis langelis užpildomas c vertę.

Skaityti daugiau: "Excel" VBA įvykiai (išsamios gairės)

7 veiksmas: Įterpkite komandos mygtuką

  • Dabar eikite į darbalapį, pavadintą Naudotojo forma savo sąsiuvinyje. Formatas kaip parodyta toliau, ir įterpti vaizdas, kurį pateikė ExcelWIKI .

  • Eikite į Kūrėjas> Valdikliai> Įterpti> ActiveX valdikliai.

  • Įdėkite mygtuką, kaip parodyta paveikslėlyje.

  • Pasirinkus mygtuką, eikite į Kūrėjas> Valdikliai> Savybės .

  • Keisti . Pavadinimas mygtuką, kad cmdShowForm ir Antraštė į Ieškoti Informacija studentams .

8 veiksmas: peržiūrėkite paieškos kodą

  • Dešiniuoju pelės klavišu spustelėkite mygtuką ir pasirinkite Peržiūrėti kodą kaip parodyta toliau.

  • Įveskite šį kodą:
 Privati subkomanda cmdShowForm_Click() StudentLookup.Show Pabaiga Sub 

9 veiksmas: eksponuoti galutinį rezultatą

  • Grąžinti į darbalapį. Įsitikinkite, kad nepažymėtas Dizainas Režimas .
  • Spustelėkite mygtuką, kad būtų rodoma forma.

  • Pasirinkite mokinio vardą ir pavardę, naudodami kombaino langelis . Kodas automatiškai grąžins mokinio lytį ir akių spalvą.

Nepamirškite išsaugoti savo darbo knygą kaip darbaknygė su makrokomandomis , jei to dar nepadarėte, ir štai, mes naudojame INDEX & amp; MATCH darbalapio funkcijos "Excel" VBA kode norėdami sukurti paieškos formą.

Skaityti daugiau: "Excel" INDEX-MATCH formulė kelioms vertėms horizontaliai grąžinti

Išvada

"Excel" turi daug naudingų darbalapio funkcijos , kuri gali būti naudojama VBA , kaip, pavyzdžiui, naudojant INDEX & amp; MATCH darbalapio funkcijos "Excel" VBA kode. Šiomis funkcijomis galėsite išplėsti savo VBA kodas. Jei jau žinote, kaip jie veikia standartinėje "Excel" darbalapį, tada mokymosi kreivė nėra tokia didelė, pritaikant žinias VBA . Prieiga prie darbalapio funkcijų VBA kodas nes nereikia kurti pasirinktinių funkcijų, kurios jau yra sukurtos.

Kviečiame komentuoti ir papasakoti, ar naudojate darbalapio funkcijas savo VBA kode ir programose.

Peržiūros skyrius: pasitikrinkite savo supratimą

1) A stulpelyje nustatykite paprastą trijų elementų sąrašą, t. y. mandarinų, morkų ir apelsinų, tada šalia kiekvieno elemento esančiame B stulpelio langelyje nurodykite, ar A stulpelyje esantys elementai yra vaisiai, ar daržovės, baigę nustatyti imties duomenis, naudokite INDEKSAS & MATCH derinio funkcija, kad būtų galima nustatyti, ar morkos yra vaisiai, ar daržovės.

2) Naudokite šį ESPN duomenų rinkinį apie NFL vyriausiuosius trenerius ir atitinkamą komandą, kurią jie treniruoja. Sukurkite naudotojo formą, kurioje naudotojas tekstiniame langelyje galėtų įvesti tam tikro trenerio vardą ir pavardę. Tada, kai naudotojas spustelės "Pateikti", kitame tekstiniame langelyje būtų pateikta komanda, kurią jis treniruoja. INDEKSAS & MATCH darbalapio funkcijų derinys jūsų VBA kode.

Hugh Westas yra labai patyręs Excel treneris ir analitikas, turintis daugiau nei 10 metų patirtį šioje srityje. Jis yra įgijęs apskaitos ir finansų bakalauro bei verslo administravimo magistro laipsnius. Hugh turi aistrą mokymui ir sukūrė unikalų mokymo metodą, kurį lengva sekti ir suprasti. Jo ekspertinės žinios apie „Excel“ padėjo tūkstančiams studentų ir specialistų visame pasaulyje tobulinti savo įgūdžius ir tobulėti savo karjeroje. Savo tinklaraštyje Hugh dalijasi savo žiniomis su pasauliu, siūlydamas nemokamus „Excel“ vadovėlius ir internetinius mokymus, kad padėtų asmenims ir įmonėms išnaudoti visą savo potencialą.