Match VBA - Comment utiliser la fonction de correspondance dans VBA Excel? (Exemples)

Table des matières

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. méthode de feuille de calcul et comme il s'agit d'une fonction de feuille de calcul, les arguments de la fonction de correspondance 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 la 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.

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 en tant que Range («E2»). Value =

Code:

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

Étape 3: Dans E2, la valeur de la cellule 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 ici la fonction MATCH.

Code:

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

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

Notre premier argument est LOOKUP VALUE. 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 gamme de tableaux de tableaux 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: Maintenant, l'argument final est 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 présent 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ésultats».

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, alors 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.

Articles intéressants...