VBA-kamp - Hvordan bruke matchfunksjon i VBA Excel? (Eksempler)

Innholdsfortegnelse

Samme som vi har Index og Match i regnearket som oppslagsfunksjoner, kan vi også bruke Match-funksjoner i VBA som en oppslagsfunksjon, denne funksjonen er en regnearkfunksjon og den er tilgjengelig av applikasjonen. regnearkmetoden, og siden det er en regnearkfunksjon, ligner argumentene for Match-funksjonen regnearkfunksjonen.

VBA Match-funksjon

VBA Match-funksjon leter etter posisjonen eller radnummeret til oppslagsverdien i tabelloppsettet, dvs. i hoved excel-tabellen.

I et regneark er oppslagsfunksjoner en integrert del av excel. Noen av de viktige oppslagsfunksjonene er VLOOKUP, HLOOKUP, INDEX og MATCH. Dessverre har vi ikke disse funksjonene som VBA-funksjoner. Vi kan imidlertid bruke dem som regnearkfunksjoner i VBA.

I denne artikkelen vil jeg vise deg hvordan du bruker en av regnearkoppslagsfunksjonen MATCH i VBA som en regnearkfunksjon.

Hvordan bruke MATCH-funksjonen i VBA Excel?

Vi viser deg et enkelt eksempel på bruk av Excel MATCH-funksjonen i VBA.

Eksempel 1

I VBA kan vi bruke denne MATCH-formelen i Excel som en regnearkfunksjon. Følg trinnene nedenfor for å bruke MATCH-funksjonen i VBA.

Trinn 1: Opprett en underprosedyre ved å oppgi et makronavn.

Kode:

Sub Match_Example1 ()

Trinn 2: I E2-celle trenger vi resultatet, så start koden som Range ("E2"). Verdi =

Kode:

Sub Match_Example1 () Range ("E2"). Verdi = End Sub

Trinn 3: I E2 skal celleverdien være resultatet av MATCH-formelen. Så for å få tilgang til VBA MATCH-funksjonen, må vi først bruke egenskapen "WorksheetFunction". I denne egenskapen får vi alle tilgjengelige funksjoner i regnearkfunksjonen.

Trinn 4: Velg MATCH-funksjonen her.

Kode:

Sub Match_Example1 () Range ("E2"). Verdi = WorksheetFunction.Match (End Sub

Trinn 5: Nå starter problemet fordi vi ikke får det eksakte syntaksnavnet. Snarere får vi syntaksen som “Arg1, Arg2, Arg3” som dette. Så du må være helt sikker på syntakser her.

Vårt første argument er LOOKUP VALUE. LOOKUP-VERDIEN vår er i cellen D2, så velg cellen som Range (“D2”). Verdi .

Kode:

Sub Match_Example1 () Range ("E2"). Verdi = WorksheetFunction.Match (Range ("D2"). Verdi, End Sub

Trinn 6: Det andre argumentet er Table Array. Vårt utvalg av bordserier er fra A2 til A10. Så velg området som “Rekkevidde (“ A2: A10 ”)”

Kode:

Sub Match_Example1 () Range ("E2"). Value = WorksheetFunction.Match (Range ("D2"). Value, Range ("A2: A10"), End Sub

Trinn 7: Nå er det siste argumentet MATCH TYPE. Vi trenger en nøyaktig samsvar, så skriv inn argumentverdien som null.

Kode:

Sub Match_Example1 () Range ("E2"). Value = WorksheetFunction.Match (Range ("D2"). Value, Range ("A2: A10"), 0) End Sub

Kjør makroen, så får vi posisjonen til uansett årets navn der i cellen D2.

Eksempel 2 - VBA-kamp fra et annet ark

Anta at det samme settet med data fra ovenstående er der på to forskjellige ark. For eksempel er tabellmatrise der i arkenavnet som heter "Dataark", og Oppslagsverdi er der i arkenavnet som heter "Resultatark."

I dette tilfellet må vi henvise regneark etter navn før vi refererer til områdene. Nedenfor er settet med koder med arknavn.

Kode:

Under Match_Example2 () Ark ("Resultatark"). Område ("E2"). Verdi = ArbeidsarkFunksjon.Match (Ark ("Resultatark"). Område ("D2"). Verdi, Ark ("Dataark"). Område ("A2: A10"), 0) End Sub

Eksempel 3 - VBA Match-funksjon med løkker

Hvis resultatet vi vil ha i en enkelt celle, er det ikke noe problem, men hvis resultatet må komme i mer enn en celle, må vi bruke en VBA-løkke for å få resultatet i alle cellene.

Anta at du har slike data.

I disse tilfellene er det en herculean oppgave å skrive lange koder, så vi bytter til løkker. Nedenfor er settet med kode som vil gjøre jobben for oss.

Kode:

Sub Match_Example3 () Dim k as Integer For k = 2 til 10 celler (k, 5) .Value = WorksheetFunction.Match (Cells (k, 4) .Value, Range ("A2: A10"), 0) Next k End Under

Dette settet med koder vil få resultatet på bare et øyeblikk.

Interessante artikler...