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

Lang L: none (table-of-contents)

Sama, mis meil on töölehel Index ja Match otsingufunktsioonidena, võime ka VBA-s funktsioone Match otsingufunktsioonina kasutada, see funktsioon on töölehe funktsioon ja sellele pääseb juurde rakendus. töölehe meetod ja kuna see on töölehe funktsioon, on funktsiooni Match argumendid töölehe funktsiooniga sarnased.

VBA mängu funktsioon

Funktsioon VBA Match otsib tabeli massiivi, st peamise Exceli tabeli, otsinguväärtuse positsiooni või rea numbrit.

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 MATCH kasutamiseks VBA-s.

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. samm: lahtris E2 peaks lahtri väärtus tulema valemi MATCH tulemus. 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 süntaksi täpset nime. Pigem saame sellise süntaksina kui "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, nii et 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 tabelimassiivi 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, seega 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, siis peame tulemuse saamiseks kõigis lahtrites kasutama VBA-silmust.

Oletame, et teil on sellised andmed.

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

Kood:

Alamklass_näide3 () Mõõt k k täisarvuna väärtuseks 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.

Huvitavad Artiklid...