Partit VBA | Com s'utilitza la funció Match a VBA Excel? (Exemples)

Igual que tenim Index i Match al full de treball com a funcions de cerca, també podem utilitzar funcions Match a VBA com a funció de cerca, aquesta funció és una funció de full de treball i l’aplicació hi accedeix. mètode del full de treball i, com que és una funció de full de treball, els arguments per a la funció Match són similars a la funció de full de treball.

Funció VBA Match

La funció VBA Match cerca la posició o el número de fila del valor de cerca a la matriu de la taula, és a dir, a la taula excel principal.

En un full de treball, les funcions de cerca són una part integral de l’excel. Algunes de les funcions de cerca importants són VLOOKUP, HLOOKUP, INDEX i MATCH. Malauradament, no tenim aquestes funcions com a funcions VBA. Tot i això, els podem utilitzar com a funcions de full de càlcul a VBA.

En aquest article, us mostraré com utilitzar una de les funcions de cerca de fulls de treball MATCH a VBA com a funció de full de treball.

Com s'utilitza la funció MATCH a VBA Excel?

Us mostrarem un exemple senzill d’utilitzar la funció Excel MATCH a VBA.

Podeu descarregar aquesta plantilla Excel de VBA Match aquí: plantilla Excel de VBA Match

Exemple 1

A VBA, podem utilitzar aquesta fórmula MATCH a Excel com a funció de full de càlcul. Seguiu els passos següents per utilitzar la funció MATCH a VBA.

Pas 1: Creeu un subprocediment donant un nom de macro.

Codi:

 Subcombinació_exemple1 ()

Pas 2: A la cel·la E2 necessitem el resultat, així que inicieu el codi com a Range ("E2"). Valor =

Codi:

 Subcombinació_Exemple1 () Interval ("E2"). Valor = Finalització sub 

Pas 3: A E2, el valor de la cel·la ha de ser el resultat de la fórmula MATCH. Per tant, per accedir a la funció VBA MATCH, primer hem d’utilitzar la propietat “WorksheetFunction”. En aquesta propietat, obtindrem tota la llista de funcions del full de treball disponible.

Pas 4: Seleccioneu la funció MATCH aquí.

Codi:

 Sub Match_Example1 () Range ("E2"). Value = WorksheetFunction.Match (End Sub 

Pas 5: Ara el problema comença perquè no rebem el nom de sintaxi exacte, sinó que obtenim la sintaxi com "Arg1, Arg2, Arg3" com aquesta. Per tant, cal estar absolutament segur de les sintaxis aquí.

El nostre primer argument és VALOR DE RECERCA, el nostre VALOR DE RECERCA es troba a la cel·la D2, així que seleccioneu la cel·la com a Interval ("D2"). Valor.

Codi:

 Sub Match_Example1 () Range ("E2"). Value = WorksheetFunction.Match (Range ("D2"). Value, End Sub 

Pas 6: El segon argument és Table Array, el nostre rang de matriu de taula va des de A2 fins a A10. Seleccioneu l'interval com "Rang (" A2: A10 ")"

Codi:

 Sub Match_Example1 () Range ("E2"). Value = WorksheetFunction.Match (Range ("D2"). Value, Range ("A2: A10"), End Sub 

Pas 7: Ara l’argument final és TIPUS DE PARTIDA. Necessitem una coincidència exacta, de manera que introduïu el valor de l’argument com a zero.

Codi:

 Sub Match_Example1 () Range ("E2"). Value = WorksheetFunction.Match (Range ("D2"). Value, Range ("A2: A10"), 0) End Sub 

Executeu la macro, obtindrem la posició del nom de l'any que hi hagi a la cel·la D2.

Exemple 2: coincidència VBA des d'un altre full

Suposem que hi ha el mateix conjunt de dades de l’anterior en dos fulls diferents. Per exemple, la matriu de taules hi ha al nom del full anomenat "Full de dades" i el valor de cerca hi ha al nom del full anomenat "Full de resultats".

En aquest cas, hem de referir els fulls de treball pel seu nom abans de referir-nos als intervals. A continuació es mostra el conjunt de codis amb noms de fulls.

Codi:

 Sub Match_Example2 () Fulls ("Full de resultats"). Range ("E2"). Value = WorksheetFunction.Match (Fulls ("Full de resultats"). Range ("D2"). Value, Fulls ("Full de dades"). Rang ("A2: A10"), 0) Finalització sub 

Exemple # 3: funció de coincidència VBA amb bucles

Si el resultat el volem en una sola cel·la, no hi ha cap problema, però si el resultat ha d’arribar a més d’una cel·la, hem d’utilitzar un bucle VBA per obtenir el resultat a totes les cel·les.

Suposem que teniu dades com aquesta.

En aquests casos, és una tasca herculina escriure codis llargs, de manera que canviem a bucles. A continuació es mostra el conjunt de codis que ens faran la feina.

Codi:

 Sub Match_Example3 () Dim k Com enter Per a k = 2 a 10 cel·les (k, 5). Valor = Full de treball Funció. Coincidència (cel·les (k, 4). Valor, rang ("A2: A10"), 0) Següent Sub 

Aquest conjunt de codis obtindrà el resultat en un tancar i obrir d’ulls.