VBA-kamp - Hvordan bruges matchfunktion i VBA Excel? (Eksempler)

Indholdsfortegnelse

Samme som vi har indeks og match i regnearket som opslagsfunktioner, kan vi også bruge matchfunktioner i VBA som en opslagsfunktion, denne funktion er en regnearksfunktion, og den er tilgængelig af applikationen. regnearksmetode, og da det er en regnearksfunktion, ligner argumenterne for Match-funktionen regnearkfunktionen.

VBA Match-funktion

VBA Match-funktion kigger efter placerings- eller rækkenummeret for opslagsværdien i tabelarrayet, dvs. i den primære excel-tabel.

I et regneark er opslagsfunktioner en integreret del af excel. Nogle af de vigtige opslagsfunktioner er VLOOKUP, HLOOKUP, INDEX og MATCH. Desværre har vi ikke disse funktioner som VBA-funktioner. Vi kan dog bruge dem som regnearksfunktioner i VBA.

I denne artikel vil jeg vise dig, hvordan du bruger en af ​​regnearkets opslagsfunktion MATCH i VBA som en regnearksfunktion.

Sådan bruges MATCH-funktion i VBA Excel?

Vi viser dig et simpelt eksempel på brug af Excel MATCH-funktionen i VBA.

Eksempel nr. 1

I VBA kan vi bruge denne MATCH-formel i excel som en regnearksfunktion. Følg nedenstående trin for at bruge MATCH-funktionen i VBA.

Trin 1: Opret en underprocedure ved at give et makronavn.

Kode:

Undermatch_eksempel1 ()

Trin 2: I E2-celle har vi brug for resultatet, så start koden som Range ("E2"). Værdi =

Kode:

Sub Match_Example1 () Range ("E2"). Værdi = End Sub

Trin 3: I E2 skal celleværdien være resultatet af MATCH-formlen. Så for at få adgang til VBA MATCH-funktionen skal vi først bruge egenskaben "WorksheetFunction". I denne egenskab får vi al den tilgængelige liste over funktionsarkfunktioner.

Trin 4: Vælg MATCH-funktionen her.

Kode:

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

Trin 5: Nu starter problemet, fordi vi ikke får det nøjagtige syntaksnavn. Snarere får vi syntaks som “Arg1, Arg2, Arg3” som denne. Så du skal være helt sikker på syntakser her.

Vores første argument er LOOKUP VALUE. Vores LOOKUP VALUE er i cellen D2, så vælg cellen som Range (“D2”) .

Kode:

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

Trin 6: Det andet argument er tabelarray. Vores tabel array rækkevidde er fra A2 til A10. Så vælg området som "Range (" A2: A10 ")"

Kode:

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

Trin 7: Det sidste argument er nu MATCH TYPE. Vi har brug for et nøjagtigt match, så indtast argumentværdien som nul.

Kode:

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

Kør makroen, vi får placeringen af ​​uanset årets navn der i cellen D2.

Eksempel 2 - VBA-kamp fra et andet ark

Antag, at det samme sæt data fra ovenstående findes på to forskellige ark. For eksempel er tabelopstilling der i arknavnet kaldet "Dataark", og Opslagsværdi er der i arknavnet kaldet "Resultatark".

I dette tilfælde er vi nødt til at henvise regneark med navnet, inden vi henviser til intervallerne. Nedenfor er kodesættet med arknavne.

Kode:

Sub Match_Example2 () Sheets ("Result Sheet"). Range ("E2"). Value = WorksheetFunction.Match (Sheets ("Result Sheet"). Range ("D2"). Value, Sheets ("Data Sheet"). Område ("A2: A10"), 0) Afslut sub

Eksempel # 3 - VBA-matchfunktion med sløjfer

Hvis det resultat, vi ønsker i en enkelt celle, ikke er noget problem, men hvis resultatet skal komme i mere end en celle, er vi nødt til at bruge en VBA-løkke for at få resultatet i alle cellerne.

Antag, at du har en sådan data.

I disse tilfælde er det en herculean opgave at skrive lange koder, så vi skifter til sløjfer. Nedenfor er kodesættet, der gør jobbet for os.

Kode:

Sub Match_Example3 () Dim k som heltal For k = 2 til 10 celler (k, 5) .Værdi = ArbejdsarkFunktion.Match (Celler (k, 4) .Værdi, Område ("A2: A10"), 0) Næste k Afslut Sub

Dette sæt koder får resultatet på bare et øjeblik.

Interessante artikler...