Innholdsfortegnelse
Du kan bruke de innebygde Excel-regnearkfunksjonene som VLOOKUP-funksjonen , VELG-funksjonen og PMT-funksjonen i VBA-koden og applikasjonene også. Faktisk kan de fleste Excel -regnearkfunksjonene nås og brukes i VBA kode . Som bruk INDEX & MATCH-regnearkfunksjoner i Excel VBA-kode.
Hvorfor vil du bruke Excel Worksheet -funksjoner i VBA kode ? Vel for å utvide funksjonaliteten til koden du bruker. Du trenger heller ikke komme opp med dine egne funksjoner, med mindre du virkelig trenger det, hvis funksjonaliteten allerede er der. Alt du trenger å gjøre er å få tilgang til funksjonen du trenger siden den allerede er der, og det er da ikke nødvendig å finne opp hjulet på nytt.
Så, la oss komme i gang med et eksempel som viser hvordan du bruker INDEX MATCH med Excel VBA.
Vi skal bruke INDEX og MATCH funksjonene i Excel VBA kode , for å lage et enkelt brukerskjema. Ved å bruke skjemaet velger brukeren et navn på eleven, og deretter hentes og returneres det tilsvarende kjønnet til eleven og øyenfargen.
Last ned øvelsesarbeidsbok
Vennligst last ned øvelsesarbeidsboken til øv deg selv.
INDEX-MATCH.xlsx
9 enkle trinn for å bruke INDEX og MATCH i VBA-koden
The INDEX og MATCH Funksjoner brukes ofte i kombinasjon i formler, for å utføre avanserte oppslag. De to i kombinasjon gir visse fordeler fremfor VLOOKUP .
Vi har allerede dekket i detalj hvordan du bruker INDEX og MATCH for å utføre avansert oppslag i en Excel arbeidsbok som en rett regnearkformel, i en tidligere opplæring . Vi skal nå se hvordan du bruker INDEX og MATCH funksjonene sammen i VBA kode , for å gi lignende funksjonalitet til oppslag UserForm vi skal lage.
Trinn 1: Bruk INDEX- og MATCH-funksjoner i datasett
- Vi starter med to ark i makroen vår -aktivert arbeidsbok. Det ene er et tomt ark kalt UserForm , det andre er et ark kalt StudentInformation , som inneholder et område som viser studentnavn, deres tilsvarende kjønn og øyenfarge som vist nedenfor.
La oss raskt minne oss selv på om vi ønsket å bruke INDEKS og MATCH Fungerer i én formel, i selve regnearket for å gi oss kjønnet til navnet til studenten vi ønsker å slå opp. Vi bruker følgende formel:
=INDEX(B2:B31, MATCH("Diana Graham", A2:A31, 0))
- Ved å trykke CTRL-ENTER , får vi verdien av kvinner returnert, som kjønn som vist nedenfor.
Trinn 2: Endre navnet på B-kolonnen til studentnavn
- Vi vil nå navngi området A2: A31 , StudentName som vist nedenfor.
- Skjul StudentInformation -arket ved å høyreklikke og velge Skjul. Det er en god idé å skjule backend-regnearkene som inneholder informasjonen, som du vil ikke at brukeren skal redigere eller se.
Trinn 3: Åpne Visual Basic-vinduet
- Nå med UserForm-arket aktivert, går vi til Utvikler > Kode > Visual Basic for å åpne Visual Basic Editor (VBE) .
- En gang i VBE-grensesnittet går vi til Insert, UserForm som vist nedenfor .
Trinn 4: Endre egenskaper og legg til tekstbokser
- Bruke Egenskaper vinduet , vil vi gi nytt navn til skjemaet vårt til StudentLookup , endre bildeteksten til Lookup Student Information, endre BackColor til lyseblått og sette høyden til 300 px og bredden til 350 px. Hvis egenskapsvinduet ikke vises, trykk på F4 -tasten på tastaturet for å se det.
- Vi vil nå sette inn en etikett ved hjelp av Verktøykasse (hvis du ikke kan se verktøykassen, gå av en eller annen grunn til Vis, Verktøykasse ), endre bildeteksten til Velg en student, og vi vil endre BackColor til hvit i dette tilfellet. Vi vil sette skrifttypen til Georgia , skriftstilen til fet , skriftstørrelsen til 12 , og senteret justerer teksten. Spesialeffekten som brukes vil være 1– fmSpecialEffectRaised som vist nedenfor.
- Nå vil vi sette inn en kombinasjonsboks under merkelapp. Gi denne kombinasjonsboksen et navn til cmdStudentName og for RowSource , skriv StudentNames.
- For å se effekten av å angi RowSource for kombinasjonsboksen, Klikk Kjør Sub/UserForm -knappen .
- Nå på grunn av å sette RowSource til det navngitte området, når brukeren klikker på rullegardinpilen på brukerskjemaet, viser kombinasjonsboksen elevnavnene fra det navngitte området, automatisk som vist nedenfor.
- Lukk brukerskjemaet ved å klikke på lukkeknappen. Trykk Alt-F11 for å gå tilbake til VBE .
- Når du er tilbake i VBE , legger du til en annen etikett i brukerskjemaet ( under kombinasjonsboksen) og endre Tekst til Kjønn og vi vil endre Bakfarge til hvit i dette tilfellet. Vi setter skrifttypen til Georgia , skriftstilen til fet , skriftstørrelsen til 12 , og senterjusterer teksten . Spesialeffekten som brukes vil være 1– fmSpecialEffectRaised som vist nedenfor.
- Opprett en tekstboks under Gender etiketten , og gi den navnet txtGender .
- Legg til en annen etikett kalt Eye Farge og en tekstboks med navn txtEyeColour som vist nedenfor. Bruk de samme egenskapene for etiketten som for de to andre etikettene som tidligere er lagt til i skjemaet, for å sikre at Brukerskjemaet har et konsistent utseende.
- Nå Velg alle kontrollene, lagt til Brukerskjemaet , så langt ved å bruke kontrolltasten.
- Senter horisontalt, som vist nedenfor.
Les Mer: Hvordan bruke INDEX MATCH-formel i Excel (9 eksempler)
Lignende avlesninger
- Excel INDEX MATCH hvis celle inneholder tekst
- Hvordan bruke INDEX-MATCH formel i Excel for å generere flere resultater
- Indeksmatch sum flere rader i Excel (3 måter)
- Lær Excel VBA-programmering & Makroer (gratis veiledning – trinn for trinn)
- 22 makroeksempler i Excel VBA
Trinn 5: Legg til en knapp fra verktøykassen
- Deretter Legg til en knapp i skjemaet ved hjelp av Verktøykassen . Endre navnet på knappen til cmdLookUp , BackColor til lys oransje, behold Tahoma -fonten og endre stilen til fet , endre til slutt teksten på knappen til Slå opp opp Student Detaljer som vist nedenfor.
Trinn 6: Sett inn VBA-kode
- Høyreklikk , den nylig lagt til knappen, og velg Vis Kode .
- Skriv inn følgende kode for knappen klikkhendelse:
2119
Vi starter med å deklarere tre variabler og tilordne variantdatatypen til disse deklarerte varianter av datatyper. Varianten datatype er en god datatype å starte med. For når du arbeider med arbeidsark funksjoner , er du kanskje ikke alltid sikker på utdataene. Bruk derfor variantdatatypen når du starter opp.
Senere er det lurt å bruke en av de andre mer spesifikke datatypene som heltall eller streng. For mer avansert lengre kode bruker ikke variantdatatypen minne like effektivt som de andre datatypene.
Variabel a trekker verdien fra alternativet brukeren velger i rullegardinkombinasjonsboksen på Brukerskjema . Hvis det ikke er noe valg, er alle de andre tekstboksene tomme .
Hvis du velger et elevnavn fra kombo boksen på UserForm, deretter trekker variabel b verdi ved å bruke INDEX Worksheet -funksjonen i kombinasjon med MATCH Function i VBA -koden, som vist.
Den slår opp verdien ved å bruke stort sett samme syntaks som regnearkfunksjonen. Når du bruker regnearkfunksjoner i VBA , er VBA IntelliSense i dette spesielle tilfellet lite intuitivt , derfor er du kjent medsyntaksen hentet fra kunnskap om regneark anbefales. Variabel c trekker verdi ved å bruke INDEKS Arbeidsark Funksjonen i kombinasjon med MATCH Funksjonen i VBA -koden når brukeren velger et alternativ fra kombinasjonsboksen.
Variabel b oppnår verdi fra kjønn kolonne i regnearket, mens variabel c får verdi fra øyefargekolonnen i regnearket.
Kjønntekstboksen er fylt ut med b -er verdi og øyefarge-tekstboksen er fylt ut med c s verdi.
Les mer: Excel VBA-hendelser (A Complete Guideline)
Trinn 7: Sett inn en kommandoknapp
- Gå nå til regnearket kalt Brukerskjema i arbeidsboken. Formater det, som vist nedenfor, og sett inn bildet levert av ExcelWIKI .
- Gå til Utvikler > Kontroller > Sett inn > ActiveX-kontroller.
- Sett inn en knapp som vist.
- Med knappen valgt, gå til Utvikler > Kontroller > Egenskaper .
- Endre navnet på knappen til cmdShowForm og Teksttekst til Oppslag Studentinformasjon .
Trinn 8: Vis Oppslagskode
- Høyreklikk knappen og velg Vis kode som vistnedenfor.
- Skriv inn følgende kode:
5732
Trinn 9: Vis sluttresultat
- Gå tilbake til regnearket. Sørg for at Design Modus er umerket.
- Klikk knappen for å vise skjemaet.
- Velg en elevs navn ved å bruke kombiboksen . Koden vil automatisk returnere elevens kjønn og øyenfarge.
Husk å lagre arbeidsboken som en makroaktivert arbeidsbok , hvis du ikke allerede har gjort det og der har du det, bruker vi INDEX & MATCH-regnearkfunksjoner i Excel VBA-kode for å lage et oppslagsskjema.
Les mer: Excel INDEX-MATCH-formel for å returnere flere verdier horisontalt
Konklusjon
Excel har mange nyttige regnearkfunksjoner , som kan brukes i VBA , som ved å bruke INDEX & MATCH regnearkfunksjoner i Excel VBA-kode. Disse funksjonene lar deg utvide VBA koden. Hvis du allerede vet hvordan de fungerer i en standard Excel regneark så er ikke læringskurven så stor ved å tilpasse kunnskapen for VBA . Å få tilgang til regnearkfunksjonene i ens VBA kode kan være en reell tidsbesparelse. Fordi man ikke trenger å utvikle tilpassede funksjoner for funksjonalitet som allerede er der.
Kommenter gjerne og fortelloss hvis du bruker regnearkfunksjoner i VBA-koden og applikasjonene dine.
Gjennomgangsdel: Test din forståelse
1) Sett opp en enkel liste i kolonne A med tre elementer, nemlig mandariner, gulrøtter og appelsiner , så i cellen ved siden av hvert element i kolonne B lister opp om elementene i kolonne A er frukt eller grønnsaker. Når du har fullført oppsettet av prøvedataene, bruk INDEKS & MATCH kombinasjonsfunksjon for å levere enten gulrøtter er frukt eller grønnsaker.
2) Bruk dette datasettet fra ESPN på NFL-hovedtrenerne og det respektive laget de trener. Lag et brukerskjema som lar en bruker legge inn navnet på en bestemt trener i en tekstboks. Få deretter laget han trener levert i en annen tekstboks når brukeren klikker send. Bruk INDEKS & MATCH regnearkfunksjonskombinasjon i VBA-koden din.