VBA matš | Kuidas kasutada VBA Exceli vastefunktsiooni? (Näited)

Nagu meil on töölehel Indeks ja Sobivus otsingufunktsioonidena, võime ka VBA-s funktsioone Sobitada otsingufunktsioonina, see funktsioon on töölehe funktsioon ja sellele pääseb juurde rakendus. töölehe meetodit ja kuna see on töölehe funktsioon, on funktsiooni Match argumendid töölehe funktsiooniga sarnased.

VBA mängu funktsioon

Funktsioon VBA Match otsib otsingu väärtuse positsiooni või rea numbrit tabelimassiivis, st Exceli põhitabelis.

Töölehel on otsingufunktsioonid Exceli lahutamatu osa. Mõned olulised otsimisfunktsioonid on VLOOKUP, HLOOKUP, INDEX ja MATCH. Kahjuks pole meil neid funktsioone VBA funktsioonidena. Kuid me saame neid kasutada VBA töölehe funktsioonidena.

Selles artiklis näitan teile, kuidas töölehe funktsioonina kasutada VBA-s ühte töölehe otsingufunktsiooni MATCH.

Kuidas kasutada funktsiooni MATCH VBA Excelis?

Näitame teile lihtsat näidet funktsiooni Exceli vaste kasutamiseks VBA-s.

Selle VBA Match Exceli malli saate alla laadida siit - VBA Match Exceli mall

Näide 1

VBA-s saame seda MATCH-valemit Excelis kasutada töölehe funktsioonina. VBA-s funktsiooni MATCH kasutamiseks tehke järgmist.

1. samm: looge alamprotseduur, andes makro nime.

Kood:

 Alamkoht_näide1 ()

2. samm: lahtris E2 vajame tulemust, nii et käivitage kood vahemikuna (“E2”). Väärtus =

Kood:

 Alamkoht_näide1 () vahemik ("E2"). Väärtus = Lõpp alam 

3. etapp: lahtris E2 peaks väärtus olema vaste valemile MATCH. Nii et funktsioonile VBA MATCH pääsemiseks peame kõigepealt kasutama atribuuti “WorksheetFunction”. Selles atribuudis saame kogu saadaoleva töölehe funktsioonide loendi.

4. samm: valige siin funktsioon MATCH.

Kood:

 Alamkoht_näide1 () vahemik ("E2"). Väärtus = töölehtFunction.Match (lõpu alam 

5. samm: Nüüd algab probleem, kuna me ei saa täpset süntaksinime, pigem süntaks nagu Arg1, Arg2, Arg3. Seega peate siin süntaksi osas täiesti kindel olema.

Meie esimene argument on LOOKUP VALUE, meie LOOKUP VALUE on lahtris D2, seega valige lahtriks Range (D2) .

Kood:

 Alamkoht_näide1 () Vahemik ("E2"). Väärtus = TöölehtFunction.Match (Vahemik ("D2"). Väärtus, Lõpp alam 

6. samm: teine ​​argument on Table Array, meie tabeli massiivi vahemik on A2 kuni A10. Valige vahemikuks „Range („ A2: A10 ”)”

Kood:

 Alamkoht_näide1 () Vahemik ("E2"). Väärtus = TöölehtFunction.Match (Vahemik ("D2"). Väärtus, Vahemik ("A2: A10"), Lõpp-alam 

7. samm: nüüd on viimane argument MATCH TYPE. Vajame täpset vastet, nii et sisestage argumendi väärtus nulliks.

Kood:

 Alamkoht_näide1 () Vahemik ("E2"). Väärtus = TöölehtFunction.Match (Vahemik ("D2"). Väärtus, Vahemik ("A2: A10"), 0) Lõpp alam 

Käivitage makro, mille abil saame lahtris D2 ükskõik millise aasta nime.

Näide # 2 - VBA vaste teiselt lehelt

Oletame, et sama ülaltoodud andmete kogum on kahel erineval lehel. Näiteks tabelimassiiv asub lehenimes nimega “Andmeleht” ja otsingu väärtus on lehenimes nimega “Tulemustabel”.

Sel juhul peame enne vahemikele viitamist suunama töölehed selle nime järgi. Allpool on lehtede nimedega koodide komplekt.

Kood:

 Alamklass_näide2 () lehed ("Tulemuste leht"). Vahemik ("E2"). Väärtus = WorksheetFunction.Match (Arvutustabelid ("Tulemuste leht"). Vahemik ("D2"). Väärtus, Arvutustabelid ("Andmeleht"). Vahemik ("A2: A10"), 0) Lõpp alam 

Näide # 3 - funktsioon VBA sobitamine silmustega

Kui tulemust soovime ühes lahtris, siis pole probleemi, kuid kui tulemus peab tulema rohkem kui ühes lahtris, peame tulemuse saamiseks kõigis lahtrites kasutama VBA-silmust.

Oletame, et teil on sellised andmed.

Nendel juhtudel on pikkade koodide kirjutamine suurte ülesannetega, seega läheme üle tsüklitele. Allpool on koodikomplekt, mis teeb meie jaoks selle töö.

Kood:

 Alamklass_näide3 () Mõõt k täisarvuna k = 2 kuni 10 lahtrit (k, 5). Väärtus = WorksheetFunction.Match (lahtrid (k, 4). Väärtus, vahemik ("A2: A10"), 0) Järgmine k lõpp Alam 

See koodide komplekt saab tulemuse vaid ühe silmapilgutusega.