Match VBA

De même que nous avons Index et Match dans la feuille de calcul comme fonctions de recherche, nous pouvons également utiliser les fonctions Match dans VBA comme fonction de recherche, cette fonction est une fonction de feuille de calcul et elle est accessible par l'application. feuille de calcul et comme il s'agit d'une fonction de feuille de calcul, les arguments de la fonction Match sont similaires à la fonction de feuille de calcul.

Fonction de correspondance VBA

La fonction VBA Match recherche la position ou le numéro de ligne de la valeur de recherche dans le tableau de table, c'est-à-dire dans la table Excel principale.

Dans une feuille de calcul, les fonctions de recherche font partie intégrante d'Excel. Certaines des fonctions de recherche importantes sont VLOOKUP, HLOOKUP, INDEX et MATCH. Malheureusement, nous n'avons pas ces fonctions en tant que fonctions VBA. Cependant, nous pouvons les utiliser comme fonctions de feuille de calcul dans VBA.

Dans cet article, je vais vous montrer comment utiliser l'une des fonctions de recherche de feuille de calcul MATCH dans VBA en tant que fonction de feuille de calcul.

Comment utiliser la fonction MATCH dans VBA Excel?

Nous allons vous montrer un exemple simple d'utilisation de la fonction Excel MATCH dans VBA.

Vous pouvez télécharger ce modèle Excel de correspondance VBA ici - Modèle Excel de correspondance VBA

Exemple 1

Dans VBA, nous pouvons utiliser cette formule MATCH dans Excel comme fonction de feuille de calcul. Suivez les étapes ci-dessous pour utiliser la fonction MATCH dans VBA.

Étape 1: Créez une sous-procédure en donnant un nom de macro.

Code:

 Sous Match_Example1 ()

Étape 2: Dans la cellule E2, nous avons besoin du résultat, alors démarrez le code comme Range («E2»).

Code:

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

Étape 3: Dans la cellule E2, la valeur doit être le résultat de la formule MATCH. Donc, pour accéder à la fonction VBA MATCH, nous devons d'abord utiliser la propriété «WorksheetFunction». Dans cette propriété, nous obtiendrons toute la liste des fonctions de feuille de calcul disponibles.

Étape 4: Sélectionnez la fonction MATCH ici.

Code:

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

Étape 5: Maintenant, le problème commence parce que nous n'obtenons pas le nom de syntaxe exact plutôt que nous obtenons la syntaxe comme «Arg1, Arg2, Arg3» comme ceci. Vous devez donc être absolument sûr des syntaxes ici.

Notre premier argument est VALEUR DE RECHERCHE, notre VALEUR DE RECHERCHE est dans la cellule D2, alors sélectionnez la cellule comme Plage («D2»). Valeur .

Code:

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

Étape 6: Le deuxième argument est Table Array, notre plage de tableau de tableau va de A2 à A10. Sélectionnez donc la plage comme "Plage (" A2: A10 ")"

Code:

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

Étape 7: Le dernier argument est maintenant MATCH TYPE. Nous avons besoin d'une correspondance exacte, alors entrez la valeur de l'argument comme zéro.

Code:

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

Exécutez la macro, nous obtiendrons la position du nom de l'année dans la cellule D2.

Exemple # 2 - Match VBA à partir d'une autre feuille

Supposons que le même ensemble de données ci-dessus se trouve sur deux feuilles différentes. Par exemple, le tableau de tableau est là dans le nom de la feuille appelé «Feuille de données» et la valeur de recherche est là dans le nom de la feuille appelé «Feuille de résultat».

Dans ce cas, nous devons faire référence aux feuilles de calcul par son nom avant de faire référence aux plages. Vous trouverez ci-dessous l'ensemble des codes avec les noms de feuille.

Code:

 Sub Match_Example2 () Sheets ("Result Sheet") .Range ("E2"). Value = WorksheetFunction.Match (Sheets ("Result Sheet") .Range ("D2"). Value, Sheets ("Data Sheet"). Plage ("A2: A10"), 0) End Sub 

Exemple # 3 - Fonction de correspondance VBA avec des boucles

Si le résultat que nous voulons dans une seule cellule, pas de problème, mais si le résultat doit arriver dans plus d'une cellule, nous devons utiliser une boucle VBA pour obtenir le résultat dans toutes les cellules.

Supposons que vous ayez une donnée comme celle-ci.

Dans ces cas, c'est une tâche herculéenne d'écrire des codes longs, nous passons donc aux boucles. Vous trouverez ci-dessous l'ensemble de code qui fera le travail pour nous.

Code:

 Sub Match_Example3 () Dim k As Integer For k = 2 To 10 Cells (k, 5) .Value = WorksheetFunction.Match (Cells (k, 4) .Value, Range ("A2: A10"), 0) Next k End Sous 

Cet ensemble de codes obtiendra le résultat en un clin d'œil.