VBA tekma - Kako uporabiti funkcijo ujemanja v programu VBA Excel? (Primeri)

Tako kot imamo indeks in ujemanje na delovnem listu kot iskalne funkcije, lahko tudi funkcije ujemanja v VBA uporabimo kot iskalno funkcijo, ta funkcija je funkcija delovnega lista in do nje dostopa aplikacija. metoda delovnega lista in ker gre za funkcijo delovnega lista, so argumenti za funkcijo Match podobni funkciji delovnega lista.

Funkcija ujemanja VBA

VBA Match funkcija išče položaj ali številko vrstice iskalne vrednosti v polju tabele, tj. V glavni tabeli excel.

Na delovnem listu so funkcije iskanja sestavni del excela. Nekatere pomembne funkcije iskanja so VLOOKUP, HLOOKUP, INDEX in MATCH. Na žalost teh funkcij nimamo kot funkcije VBA. Lahko pa jih uporabimo kot funkcije delovnega lista v VBA.

V tem članku vam bom pokazal, kako uporabiti eno od funkcij iskanja delovnih listov MATCH v VBA kot funkcijo delovnega lista.

Kako uporabiti funkcijo MATCH v programu VBA Excel?

Pokazali vam bomo preprost primer uporabe funkcije Excel MATCH v VBA.

Primer # 1

V VBA lahko to formulo MATCH v Excelu uporabimo kot funkcijo delovnega lista. Za uporabo funkcije MATCH v VBA sledite spodnjim korakom.

1. korak: Ustvarite podproceduro z podajanjem imena makra.

Koda:

Sub Match_Example1 ()

2. korak: V celici E2 potrebujemo rezultat, zato zaženite kodo kot Obseg (“E2”).

Koda:

Sub Match_Example1 () Obseg ("E2"). Vrednost = Konec Sub

3. korak: V E2 mora biti vrednost celice rezultat formule MATCH. Za dostop do funkcije VBA MATCH moramo najprej uporabiti lastnost "WorksheetFunction". V tej lastnosti bomo dobili ves razpoložljiv seznam funkcij delovnega lista.

4. korak: Tu izberite funkcijo MATCH.

Koda:

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

5. korak: Zdaj se težava začne, ker ne dobimo natančnega imena sintakse. Namesto tega dobimo takšno sintakso kot "Arg1, Arg2, Arg3". Torej, tukaj morate biti popolnoma prepričani o skladnjah.

Naš prvi argument je LOOKUP VALUE. Naša IŠČI VREDNOST je v celici D2, zato izberite celico kot obseg (»D2«) .

Koda:

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

6. korak: Drugi argument je Array Table. Naš obseg tabel je od A2 do A10. Torej izberite obseg kot "Obseg (" A2: A10 ")"

Koda:

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

7. korak: Zdaj je zadnji argument TIP UTAKVE. Potrebujemo natančno ujemanje, zato vrednost argumenta vnesite kot nič.

Koda:

Sub Match_Example1 () Obseg ("E2"). Vrednost = WorksheetFunction.Match (Obseg ("D2"). Vrednost, obseg ("A2: A10"), 0) Konec Sub

Zaženite makro, dobili bomo položaj katerega koli imena leta v celici D2.

2. primer - VBA tekma iz drugega lista

Predpostavimo, da je enak nabor podatkov zgoraj na dveh različnih listih. Na primer, tabela je v imenu lista, imenovanem »Podatkovni list«, in Iskalna vrednost je v imenu lista, imenovanem »Rezultat list«.

V tem primeru se moramo sklicevati na delovne liste po imenu, preden se sklicujemo na obsege. Spodaj je nabor kod z imeni listov.

Koda:

Sub Match_Example2 () Sheets ("List z rezultati"). Obseg ("E2"). Value = WorksheetFunction.Match (Sheets ("Result Sheet"). Range ("D2"). Value, Sheets ("Data Sheet"). Območje ("A2: A10"), 0) Konec Sub

Primer # 3 - VBA funkcija ujemanja z zankami

Če rezultat želimo v eni sami celici, potem ni problema, če pa mora rezultat priti v več celicah, moramo uporabiti zanko VBA, da dobimo rezultat v vseh celicah.

Predpostavimo, da imate takšne podatke.

V teh primerih je herkulska naloga pisati dolge kode, zato preidemo na zanke. Spodaj je nabor kode, ki bo opravila delo namesto nas.

Koda:

Sub Match_Example3 () Dim k kot celo število za k = 2 do 10 celic (k, 5). Pod

Ta niz kod bo rezultat dosegel že v trenutku.

Zanimive Članki...