VBA mérkőzés - Hogyan kell használni a Match funkciót a VBA Excel programban? (Példák)

Tartalomjegyzék

Ugyanúgy, mint az Index és a Match a munkalapon, mint keresési funkciók, a VBA egyeztetési funkcióit is használhatjuk keresési funkcióként, ez a funkció egy munkalapfüggvény, és az alkalmazás hozzáfér hozzá. munkalap metódus, és mivel ez egy munkalapfüggvény, a Match függvény argumentumai hasonlóak a munkalapfüggvényhez.

VBA mérkőzés funkció

A VBA egyeztetés függvény a táblázat tömbjében, azaz a fő excel táblázatban keresi a keresési érték pozícióját vagy sorszámát.

Egy munkalapon a keresési függvények az excel szerves részét képezik. Néhány fontos keresési funkció a VLOOKUP, a HLOOKUP, az INDEX és a MATCH. Sajnos ezek a funkciók nincsenek VBA függvényként. Használhatjuk azonban őket munkalap funkcióként a VBA-ban.

Ebben a cikkben megmutatom, hogyan lehet a VBA-ban található MATCH munkalap keresési funkciót munkalapfüggvényként használni.

Hogyan kell használni a MATCH függvényt a VBA Excel programban?

Mutatunk egy egyszerű példát az Excel MATCH függvény használatára a VBA-ban.

1. példa

A VBA-ban ezt a MATCH képletet használhatjuk az excelben munkalapfüggvényként. Kövesse az alábbi lépéseket a MATCH funkció VBA használatához.

1. lépés: Hozzon létre egy alfolyamatot makrónév megadásával.

Kód:

1. egyezés_példa1 ()

2. lépés: Az E2 cellában szükségünk van az eredményre, ezért indítsuk el a kódot Range („E2”) néven

Kód:

Alegyeztetés_Példa1 () Tartomány ("E2"). Érték = Vége al

3. lépés: Az E2-ben a cellaértéknek a MATCH képletnek kell lennie. Tehát a VBA MATCH funkció eléréséhez először a „WorksheetFunction” tulajdonságot kell használnunk. Ebben a tulajdonságban megkapjuk az összes rendelkezésre álló munkalap funkció listát.

4. lépés: Itt válassza ki a MATCH funkciót.

Kód:

Sub Match_Példa1 () Tartomány ("E2"). Érték = WorksheetFunction.Match (End Sub

5. lépés: Most kezdődik a probléma, mert nem kapjuk meg a pontos szintaxis nevet. Inkább ilyen szintaxist kapunk, mint „Arg1, Arg2, Arg3”. Tehát itt teljesen biztosnak kell lennie a szintaxisokban.

Első érvünk a KERESÉSI ÉRTÉK. A KERESÉSI ÉRTÉKÜNK a D2 cellában van, ezért válassza ki a cellát tartományként („D2”) .

Kód:

Sub Match_Példa1 () Tartomány ("E2"). Érték = WorksheetFunction.Match (tartomány ("D2"). Érték, End Sub

6. lépés: A második érv a Table Array. A táblázat tömb tartományunk A2 és A10 között van. Válassza ki a tartományt „Tartomány („ A2: A10 ”)”

Kód:

Sub Match_Példa1 () Tartomány ("E2"). Érték = WorksheetFunction.Match (Tartomány ("D2"). Érték, Tartomány ("A2: A10"), Végső al

7. lépés: Most az utolsó érv a MATCH TYPE. Pontos egyezésre van szükségünk, ezért adja meg az argumentum értékét nulla.

Kód:

Sub Match_Példa1 () Tartomány ("E2"). Érték = WorksheetFunction.Match (Tartomány ("D2"). Érték, Tartomány ("A2: A10"), 0) Vége Sub

Futtassa a makrót, így megkapjuk az évnév helyzetét a D2 cellában.

2. példa - VBA-mérkőzés egy másik lapról

Tegyük fel, hogy a fentiekből ugyanaz az adatkészlet található két különböző lapon. Például a táblázat tömbje ott van az „Adatlap” nevű lapnévben, a Keresési érték pedig az „Eredménylap” nevű lapnévben.

Ebben az esetben a munkalapokra a nevén kell hivatkoznunk, mielőtt a tartományokra hivatkoznánk. Az alábbiakban a lapok nevét tartalmazó kódkészlet található.

Kód:

Sub Match_Példa2 () Táblázatok ("Eredménylap"). Tartomány ("E2"). Érték = WorksheetFunction.Match (Táblázatok ("Eredménylap"). Tartomány ("D2"). Érték, Táblázatok ("Adatlap"). Tartomány ("A2: A10"), 0) Vége al

3. példa - VBA egyezés funkció hurokkal

Ha az eredményt egyetlen cellában akarjuk megkapni, akkor semmi gond, de ha az eredménynek több cellában kell lennie, akkor VBA-hurkot kell használnunk ahhoz, hogy az eredmény az összes cellában megtalálható legyen.

Tegyük fel, hogy van ilyen adata.

Ezekben az esetekben herculean feladat hosszú kódokat írni, ezért hurkokra váltunk. Az alábbiakban látható a kódkészlet, amely elvégzi a munkát helyettünk.

Kód:

Sub Match_Példa3 () Dim k egész szám k = 2-10 celláig (k, 5). Érték = WorksheetFunction.Match (cellák (k, 4). Érték, tartomány ("A2: A10"), 0) Következő k vége Alatti

Ez a kódkészlet csak egy szempillantás alatt megkapja az eredményt.

érdekes cikkek...