VBA InStr - Top 5 des exemples d'utilisation de la fonction Excel VBA InStr

Table des matières

Fonction Excel VBA InStr

Instr dans VBA est utilisé pour trouver la position d'une sous-chaîne donnée dans une chaîne après avoir spécifié la méthode de comparaison à la fonction, il existe quatre méthodes de comparaison différentes pour cette fonction, Instr est une fonction de chaîne mais la sortie retournée par la fonction est numérique pour que la sortie de cette fonction soit dans une variable entière.

La chaîne dans VBA n'est rien d'autre qu'une série de caractères, c'est-à-dire que tous les textes fournis avec des guillemets doubles sont traités comme des chaînes. InStr Function est une fonction de texte intégrée utilisée pour manipuler les chaînes. Par exemple - Si vous souhaitez extraire une sous-chaîne d'une phrase ou si vous souhaitez appliquer des modifications de conception de police à une chaîne particulière dans une série de caractères, ou si vous souhaitez rechercher la position d'un caractère et de nombreuses autres possibilités, vous pouvez utilisez InStr.

Syntaxe

Il a 4 arguments, comme indiqué dans l'image ci-dessous.

  • (Démarrer): Ce n'est pas obligatoire. Il s'agit de la valeur numérique dont nous avons besoin pour spécifier à partir de quelle position de la chaîne la fonction Instr commence à rechercher le texte fourni. Par exemple: si vous souhaitez rechercher le caractère « a » dans le mot « Bangalore » du 3 ème position, nous devons dire la position de départ fonction instr que 3. Ainsi , dès le 3 ème position, le caractère « a » est en 5 ème position. Si vous ignorez ce paramètre, la valeur par défaut est 1.
  • Chaîne 1: C'est la chaîne que nous fournissons, c'est-à-dire à partir de ce texte, nous essayons de trouver la sous-chaîne. Par exemple, si vous recherchez la chaîne «a» dans «Bangalore», la chaîne 1 à Bangalore.
  • Chaîne 2: ce n'est rien d'autre que la chaîne que nous recherchons. Par exemple, si vous recherchez la chaîne «a» dans «Bangalore», la chaîne 2 est a .
  • (Comparer): Ceci est à nouveau un argument facultatif. Il existe trois types d'options disponibles dans l'argument (comparer).
  • vbBinaryCompare: Il ne s'agit que d'une recherche sensible à la casse de la sous-chaîne (chaîne 2) dans la chaîne 1. Par exemple, si nous recherchons «a» dans le mot «Bangalore», Instr renverra 2 en conséquence, et si vous recherchent «A» dans le mot «Bangalore», Instr renverrait 0 comme résultat car la chaîne fournie est une valeur en majuscules.

Nous pouvons également mettre zéro (0) comme argument.

vbTextCompare: Il ne s'agit pas d'une recherche sensible à la casse de la chaîne 2 dans la chaîne 1. Par exemple, si nous recherchons «a» dans le mot «Bangalore», Instr renverra 2 en conséquence, et si vous recherchez « A " dans le mot " Bangalore ", Instr renverrait également 2. La logique est A = a, B = b, C = c etc.….

Nous pouvons également mettre un (1) comme argument.

vbDatabaseCompare: Ceci est utilisé pour comparer les informations de votre base de données, c'est-à-dire la base de données Microsoft Access.

Nous pouvons également mettre un (-1) comme argument.

Top 5 des exemples d'utilisation de la fonction VBA Instr

Exemple 1

Commençons par le premier exemple. Dans le mot Bangalore, trouvez la position du caractère a.

Le code ci-dessous effectuera la tâche pour nous.

Code:

Sub Instr_Example1 () Dim i As Variant i = InStr ("Bangalore", "a") MsgBox i End Sub

Exécutez maintenant le code VBA ci-dessus à l'aide de la clé F5, ou vous pouvez également exécuter ce code manuellement, comme indiqué dans la capture d'écran ci-dessous.

Production:

Exemple # 2

Maintenant dans le mot Bangalore, trouvez la position du caractère «a» à partir de la troisième position.

Le code ci-dessous effectuera la tâche pour nous.

Code:

Sub Instr_Example2 () Dim i As Variant i = InStr (3, "Bangalore", "a") MsgBox i End Sub

Pour exécuter le code ci-dessus, vous pouvez utiliser la touche F5, ou vous pouvez également exécuter ce code manuellement, comme indiqué dans la capture d'écran ci-dessous.

Production:

Maintenant, dans l'image ci-dessus, regardez la différence par rapport au code précédent. Puisque nous avons mentionné la position de départ du caractère comme 3, il a ignoré le premier caractère «a» à la 2 ème position.

Exemple # 3

Nous allons maintenant voir la recherche sensible à la casse. Dans le mot Bangalore, recherchez la lettre «A.»

Pour cela, nous devons fournir l'argument de comparaison en tant que vbBinaryCompare.

Code:

Sub Instr_Example3 () Dim i As Variant i = InStr (1, "Bangalore", "A", vbBinaryCompare) MsgBox i End Sub

Maintenant, exécutez ce code à l'aide de la touche F5, ou vous pouvez également exécuter ce code manuellement.

Production:

Since we have supplied the compare argument as vbBinaryCompare Instr function returned the result as zero because there are no uppercase letter “A” exists.

Example #4

Now we will see one more case sensitive search. In the word Bangalore, find the letter “A.” The previous example returned the result as zero.

In order to overcome the case sensitive approach here, we need to supply the compare argument as vbTextCompare.

Code:

Sub Instr_Example4() Dim i As Variant i = InStr(1, "Bangalore", "A", vbTextCompare) MsgBox i End Sub

Now Run, this code using the F5 Key, or you can also run this code manually.

Output:

Example #5

Now we will see the advanced level of Instr function. If you have many sheets that have a more or less similar name and you want to hide all those sheets at once, we can use the below code to hide a specific sheet.

For example, I have 5 sheets named Summary 1, Summary 2, Summary 3, Summary 4, and Data Sheet.

Now I want to hide all those sheets which have the word “Summary.” Use the below code to hide all the sheets which have the word Summary in its name.

Code:

Sub To_Hide_Specific_Sheet() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets If InStr(Ws.Name, "Summary")> 0 Then Ws.Visible = xlSheetVeryHidden End If Next Ws 'InStr function looks for word or phrase in the sheet name 'If it finds then it will be hidden End Sub

Now Run, this code using the F5 Key, or you can also run this code manually and see the Output.

Similarly, in order to unhide all those sheets, use the below code.

Code:

Sub To_UnHide_Specific_Sheet() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets If InStr(Ws.Name, "Summary")> 0 Then Ws.Visible = xlSheetVisible End If Next Ws 'InStr function looks for word or phrase in the sheet name 'If it finds then it will be hidden End Sub

Now Run, this code using the F5 Key, or you can also run this code manually and see the Output.

Things to Remember

  • Instr is a case sensitive function. In order to eliminate this case sensitive issue, you need to supply the (compare) argument as.
  • If you are searching for case sensitive character, you need to supply the (compare) argument as, by default, VBA takes this as the argument even if you do not supply.
  • Instr est une fonction VBA, de sorte que vous ne pouvez pas l'utiliser dans une feuille de calcul Excel comme d'autres formules intégrées.
  • Si la fonction ne trouve pas la chaîne 2, le résultat sera zéro.

Articles intéressants...