Table des matières
Si vous recherchez les moyens les plus simples de trouver une correspondance exacte en utilisant les éléments suivants VBA Commençons par l'article et découvrons les moyens de trouver une correspondance exacte.
Télécharger le cahier d'exercices
VBA Rechercher une correspondance exacte.xlsm5 façons de trouver une correspondance exacte en utilisant VBA
J'ai utilisé le tableau suivant qui contient les enregistrements des résultats de certains étudiants. Je vais expliquer les différentes façons de trouver la correspondance exacte en utilisant ce tableau avec l'aide de VBA.
Pour ce faire, j'ai utilisé la version 365 de Microsoft Excel, vous pouvez utiliser toute autre version selon votre convenance.
Méthode 1 : Trouver une correspondance exacte dans une plage de cellules
Si vous voulez trouver une correspondance exacte d'une chaîne de caractères comme le nom d'un étudiant et ensuite trouver la position de la cellule de cet étudiant, vous pouvez le faire en suivant cette méthode.
Ici, je vais trouver une correspondance exacte pour l'étudiant nommé "Joseph Micahel" .
Step-01 :
➤Go to Développeur Tab>> ; Visual Basic Option
Ensuite, le Éditeur Visual Basic s'ouvrira.
➤Go to Insérer Tab>> ; Module Option
Après cela, un Module sera créé.
Step-02 :
➤Write the following code
Sub searchtxt() Dim rng As Range Dim str As String Set rng = Sheets("exact match").Range("B5:B10").Find("Joseph Michael", LookIn:=xlValues) If Not rng Is Nothing Then str = rng.Address MsgBox (rng & ; " in " & ; str) End If End Sub
Ici, "correspondance exacte" est le nom de la feuille et "B5:B10" est l'éventail des noms des élèves, et "Joseph Michael" est le nom de l'étudiant qui doit être trouvé.
rng est déclaré comme un objet de gamme et str comme une variable de type chaîne de caractères pour stocker l'adresse de l'élément recherché.
Le site SI attribuera l'adresse de l'élément à l'élément str variable.
➤Press F5
Résultat :
Après cela, vous obtiendrez ce qui suit Boîte à messages contenant la position de la cellule de l'élève nommé "Joseph Michael" .
Lire la suite : Recherche dans une plage avec VBA dans Excel : y compris les correspondances exactes et partielles
Méthode 2 : Trouver la correspondance exacte et la remplacer à l'aide de VBA
Je vais vous montrer comment trouver le nom de l'étudiant indiqué et le remplacer par un autre nom parce que, par erreur, ce nom a été écrit ici. Vous pouvez trouver la chaîne de caractères souhaitée et la remplacer en suivant cette méthode.
Step-01 :
➤Follow Step-01 de Méthode 1
Sub FindandReplace() Dim rng As Range Dim str As String With Worksheets("find&replace").Range("B5:B10") Set rng = .Find("Donald Paul", LookIn:=xlValues) If Not rng Is Nothing Then str = rng.Address Do rng.Value = Replace(rng.Value, "Donald Paul", "Henry Jackson") Set rng = .FindNext(rng) Loop While Not rng Is Nothing End If End With End Sub
Ici, "trouver&remplacer" est le nom de la feuille et "B5:B10" est l'éventail des noms des élèves, et "Donald Paul" est le nom de l'étudiant qui doit être trouvé et ensuite "Henry Jackson" sera le nom de l'étudiant au lieu du précédent.
AVEC évitera la répétition du morceau de code dans chaque déclaration.
Le site SI attribuera l'adresse de l'élément à l'élément str et la variable DO La boucle remplacera toutes les occurrences du mot recherché.
➤Press F5
Résultat :
Ensuite, vous obtiendrez le nom du nouvel élève comme suit "Henry Jackson" .
Méthode 3 : Trouver une correspondance exacte et sensible à la casse
Si vous voulez trouver une correspondance sensible à la casse, suivez cette méthode. Ici, j'ai deux noms similaires l'un à l'autre mais il y a une différence dans la casse et selon la casse, je vais remplacer le nom du dernier élève.
Step-01 :
➤Follow Step-01 de Méthode 1
Sub exactmatch() Dim rng As Range Dim str As String With Worksheets("case-sensitive").Range("B5:B10") Set rng = .Find("Donald Paul", LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True) If Not rng Is Nothing Then str = rng.Address Do rng.Value = Replace(rng.Value, "Donald Paul", "Henry Jackson") Set rng = .FindNext(rng) Loop While Not rng Is Nothing End If End With End WithSous
Ici, "sensible à la casse" est le nom de la feuille et "B5:B10" est l'éventail des noms des élèves, et "Donald Paul" est le nom de l'étudiant qui doit être trouvé, et ensuite "Henry Jackson" sera le nom de l'étudiant au lieu du précédent.
AVEC évitera la répétition du morceau de code dans chaque déclaration.
Le site SI attribuera l'adresse de l'élément à l'élément str et la variable DO La boucle remplacera toutes les occurrences du mot recherché.
➤Press F5
Résultat :
Maintenant, selon l'affaire, le nom de l'élève sera changé en "Henry Jackson" .
Lectures similaires :
- Comment trouver une chaîne dans une cellule en utilisant VBA dans Excel (2 méthodes)
- VBA Rechercher dans une colonne dans Excel (7 approches)
- Comment trouver une chaîne de caractères avec VBA dans Excel (8 exemples)
Méthode-4 : Utilisation de la fonction InStr
Supposons que vous voulez faire correspondre Passez ou Ne pas correspondre aux noms des élèves en fonction de la Colonne de résultats où Passez ou Échec a été écrite. Pour trouver cette chaîne de caractères dans le fichier Colonne de résultats et écrire "Passé" dans le Colonne d'état pour les étudiants qui ont passé l'examen, vous pouvez utiliser la fonction InStr .
Step-01 :
➤Follow Step-01 de Méthode 1
Sub Checkstring() Dim cell As Range For Each cell In Range("C5:C10") If InStr(cell.Value, "Pass")> ; 0 Then cell.Offset(0, 1).Value = "Passed" Else cell.Offset(0, 1).Value = " " End If Next cell End Sub
Ici, la plage de cellules est C5:C10 qui est le Colonne de résultats
InStr(cell. value, "Pass")> ; 0 est la condition où le nombre est supérieur à zéro (lorsque la cellule contient "Passe" ), la ligne suivante continuera et donnera la sortie dans la cellule adjacente comme suit Adopté .
Si la condition devient fausse, cela signifie qu'une cellule ne contient pas d'informations. "Passe" puis la ligne sous ELSE s'exécutera et donnera la valeur de sortie dans la cellule adjacente en tant que vierge .
Cette boucle se poursuit pour chaque cellule.
➤Press F5
Résultat :
Ensuite, vous obtiendrez le "Passé" pour les étudiants qui ont réussi.
Méthode-5 : Trouver la correspondance exacte et extraire les données
Si vous voulez extraire les données correspondantes pour un élève nommé "Michael James" alors vous pouvez suivre cette méthode.
Step-01 :
➤Follow Step-01 de Méthode 1
Sub Extractdata() Dim lastusedrow As Long Dim i As Integer, icount As Integer lastusedrow = ActiveSheet.Range("B100").End(xlUp).Row For i = 1 To lastusedrow If InStr(1, Range("B" & ; i), "Michael James")> ; 0 Then icount = icount + 1 Range("E" & ; icount & ; ":G" & ; icount) = Range("B" & ; i & ; ":D" & ; i).Value End If Next i End Sub
Ici, j'ai utilisé B100 comme le Plage de la feuille active (vous pouvez utiliser n'importe quelle gamme en fonction de votre utilisation).
InStr(1, Range("B" & ; i), "Michael James")> ; 0 est la condition permettant de vérifier si la cellule de la colonne B contient Michael James .
Range("E" & ; icount & ; ":G" & ; icount) est la plage dans laquelle vous souhaitez obtenir vos données de sortie et Range("B" & ; i & ; ":D" & ; i).value donnera les valeurs de la colonne B à D .
➤Press F5
Résultat :
Ensuite, vous obtiendrez les données extraites suivantes pour les étudiants ayant le nom Michael James .
Section pratique
Pour vous entraîner vous-même, nous avons fourni un Pratique comme ci-dessous dans une feuille nommée Pratique S'il vous plaît, faites-le vous-même.
Conclusion
Dans cet article, j'ai essayé de couvrir les façons les plus simples de trouver une correspondance exacte en utilisant le logiciel de gestion de l'information. VBA dans Excel de manière efficace. Nous espérons que vous trouverez cet outil utile. Si vous avez des suggestions ou des questions, n'hésitez pas à nous en faire part.