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, prie kurios prieina 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į.

Šį „VBA Match Excel“ šabloną galite atsisiųsti čia - „VBA Match Excel“ šablonas

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 langelyje 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 antrinė dalis) 

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

Pirmasis mūsų argumentas yra LOOKUP VALUE, mūsų LOOKUP VALUE yra langelyje D2, todėl langelį pasirinkite Range („D2“) .

Kodas:

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

6 žingsnis: Antrasis argumentas yra „Table Array“, 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š pirmiau 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ė, Lapai („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 daugybės 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.


$config[zx-auto] not found$config[zx-overlay] not found