VBA rungtynės - Kaip naudoti atitikties funkciją „VBA Excel“? (Pavyzdžiai)

Kaip ir „Index“ ir „Match“ darbalapyje, kaip paieškos funkcijas, mes taip pat galime naudoti „Match“ funkcijas „VBA“ kaip paieškos funkciją, ši funkcija yra darbalapio funkcija ir ją pasiekia programa. darbalapio metodą ir kadangi tai yra darbalapio funkcija, funkcijos „Rungtis“ argumentai yra panašūs į darbalapio funkciją.

VBA rungtynių funkcija

VBA atitikties funkcija ieško paieškos vertės pozicijos arba eilutės numerio lentelės masyve, ty pagrindinėje „Excel“ lentelėje.

Darbalapyje paieškos funkcijos yra neatsiejama „Excel“ dalis. Kai kurios svarbios paieškos funkcijos yra VLOOKUP, HLOOKUP, INDEX ir MATCH. Deja, mes neturime šių funkcijų kaip VBA funkcijos. Tačiau VBA jas galime naudoti kaip darbalapio funkcijas.

Šiame straipsnyje aš jums parodysiu, kaip naudoti vieną iš darbalapio paieškos funkcijos MATCH VBA kaip darbalapio funkciją.

Kaip naudoti „MATCH“ funkciją „VBA Excel“?

Parodysime paprastą „Excel MATCH“ funkcijos naudojimo VBA pavyzdį.

1 pavyzdys

VBA mes galime naudoti šią MATCH formulę „Excel“ kaip darbalapio funkciją. Atlikite toliau nurodytus veiksmus, jei norite naudoti funkciją MATCH VBA.

1 veiksmas: sukurkite subprocedūrą suteikdami makrokomandos pavadinimą.

Kodas:

Antrasis atitikmuo_pavyzdys1 ()

2 žingsnis: E2 langelyje mums reikia rezultato, todėl pradėkite kodą kaip diapazoną („E2“). Reikšmė =

Kodas:

Antrinis atitikties_pavyzdys1 () diapazonas („E2“). Reikšmė = pabaigos antrinė dalis

3 žingsnis: E2 langelio vertė turėtų būti MATCH formulės rezultatas. Taigi, norėdami pasiekti VBA MATCH funkciją, pirmiausia turime naudoti ypatybę „WorksheetFunction“. Šioje ypatybėje gausime visą turimą darbalapio funkcijų sąrašą.

4 žingsnis: Čia pasirinkite funkciją MATCH.

Kodas:

Papildomas atitikties_pavyzdys1 () diapazonas ("E2"). Reikšmė = WorksheetFunction.Match (pabaigos antrinis

5 žingsnis: Dabar problema prasideda, nes negauname tikslaus sintaksės pavadinimo. Atvirkščiai, mes gauname tokią sintaksę kaip „Arg1, Arg2, Arg3“. Taigi čia turite būti visiškai tikri sintaksėmis.

Pirmasis mūsų argumentas yra PAIEŠKOS VERTĖ. Mūsų LOOKUP VALUE yra langelyje D2, todėl pasirinkite langelį kaip Range („D2“) .

Kodas:

Papildomas atitikties_pavyzdys1 () diapazonas („E2“). Reikšmė = WorksheetFunction.Match (diapazonas („D2“). Reikšmė, pabaiga Sub

6 žingsnis: Antrasis argumentas yra lentelių masyvas. Mūsų lentelių masyvo diapazonas yra nuo A2 iki A10. Taigi pasirinkite diapazoną kaip „Diapazonas („ A2: A10 “)“

Kodas:

Papildomas atitikties_pavyzdys1 () diapazonas ("E2"). Reikšmė = WorksheetFunction.Match (diapazonas ("D2"). Reikšmė, diapazonas ("A2: A10"), pabaigos antrinė dalis

7 žingsnis: Dabar paskutinis argumentas yra MATCH TYPE. Mums reikia tikslios atitikties, todėl argumento vertę įveskite kaip nulį.

Kodas:

Papildomas atitikties_pavyzdys1 () diapazonas ("E2"). Reikšmė = WorksheetFunction.Match (diapazonas ("D2"). Reikšmė, diapazonas ("A2: A10"), 0) Pabaiga Sub

Paleiskite makrokomandą, kurioje gausime metų pavadinimo vietą langelyje D2.

2 pavyzdys - VBA rungtynės iš kito lapo

Tarkime, kad tas pats duomenų rinkinys iš aukščiau pateiktų yra skirtinguose lapuose. Pvz., Lentelių masyvas yra lapo pavadinime, vadinamame „Duomenų lapas“, o „Paieškos vertė“ yra lapo pavadinime, vadinamame „Rezultatų lapas“.

Šiuo atveju, prieš nurodydami diapazonus, turime nurodyti darbalapius pagal jo pavadinimą. Žemiau pateikiamas kodų rinkinys su lapų pavadinimais.

Kodas:

Antrasis atitikties_pavyzdys2 () Skaičiuoklės („Rezultatų lapas“). Diapazonas („E2“). Reikšmė = WorksheetFunction.Match (Skaičiuoklės („Rezultatų lapas“). Diapazonas („D2“). Vertė, Skaičiuoklės („Duomenų lapas“). Diapazonas ("A2: A10"), 0) Pabaiga

3 pavyzdys - VBA atitikties funkcija su kilpomis

Jei rezultato norime vienoje langelyje, tada jokių problemų, bet jei rezultatas turi atsirasti daugiau nei vienoje langelyje, tada norėdami gauti rezultatą visose ląstelėse, turime naudoti VBA kilpą.

Tarkime, kad turite tokių duomenų.

Šiais atvejais ilgų kodų rašymas yra herculeano užduotis, todėl mes pereiname prie kilpų. Žemiau pateikiamas kodo rinkinys, kuris atliks darbą už mus.

Kodas:

Antrasis atitikmuo_pavyzdys3 () Dim k kaip sveikoji k = 2–10 langelių (k, 5). Vertė = WorksheetFunction.Match (langeliai (k, 4). Vertė, diapazonas ("A2: A10"), 0) Kitas k pabaiga Sub

Šis kodų rinkinys pasieks rezultatą tik akies mirksniu.

Įdomios straipsniai...