Funcția Excel VBA InStr
Instr în VBA este utilizat pentru a afla poziția unui șir dat într-un șir după ce specificăm metoda de comparație cu funcția, există patru metode de comparație diferite pentru această funcție, Instr este o funcție de șir, dar ieșirea returnată de funcție este numeric, astfel încât ieșirea acestei funcții este într-o variabilă întreagă.
Șirul din VBA nu este altceva decât o serie de caractere, adică toate textele furnizate cu ghilimele duble sunt tratate ca șiruri. Funcția InStr este o funcție de text încorporată utilizată pentru a manipula șirurile. De exemplu - Dacă doriți să extrageți un șir dintr-o propoziție sau dacă doriți să aplicați modificări ale designului fontului la un anumit șir dintr-o serie de caractere sau dacă doriți să găsiți poziția unui caracter și multe alte posibilități, puteți utilizați InStr.

Sintaxă

Are 4 argumente, așa cum se arată în imaginea de mai jos.
- (Start): Acest lucru nu este obligatoriu. Aceasta este valoarea numerică pe care trebuie să o specificăm din ce poziție a funcției de șir Instr începe să caute textul furnizat. De exemplu: dacă doriți să căutați caracterul „a” din cuvântul „Bangalore” din poziția a 3 -a , trebuie să spunem poziției de pornire a funcției Instr ca 3. Deci, din poziția a 3 -a , caracterul „a” este în poziția a 5- a . Dacă ignorați acest parametru, valoarea implicită este 1.
- Șirul 1: Acesta este șirul propriu-zis pe care îl furnizăm, adică, din acest text, încercăm să găsim șirul secundar. De exemplu, dacă căutați șirul „a” în „Bangalore”, șirul 1 din Bangalore.
- Șirul 2: Acesta nu este altceva decât ceea ce este șirul pe care îl căutăm. De exemplu, dacă sunteți în căutarea șirului „a” în „Bangalore”, șirul 2 este un .
- (Comparați): Acesta este din nou un argument opțional. Există trei tipuri de opțiuni disponibile în argumentul (comparare).

- vbBinaryCompare: Aceasta nu este altceva decât o căutare sensibilă la majuscule și minuscule a șirului (șirul 2) din Șirul 1. De exemplu, dacă căutăm „a” în cuvântul „Bangalore”, Instr ar întoarce 2 ca rezultat, iar dacă căutați „A” în cuvântul „Bangalore”, Instr ar returna 0 ca rezultat, deoarece șirul furnizat este o valoare majusculă.
De asemenea, putem pune zero (0) ca argument.
vbTextCompare: Aceasta nu este o căutare sensibilă la majuscule și minuscule a șirului 2 din șirul 1. De exemplu, dacă căutăm „a” în cuvântul „Bangalore”, Instr ar întoarce 2 ca rezultat, iar dacă căutați „ A ” din cuvântul „ Bangalore ”, Instr ar întoarce și 2. Logica este A = a, B = b, C = c etc.….
Putem pune, de asemenea, unul (1) ca argument.
vbDatabaseCompare: Aceasta este utilizată pentru a compara informațiile din baza de date, adică baza de date Microsoft Access.
Putem pune, de asemenea, unul (-1) ca argument.
Top 5 Exemple de utilizare a funcției VBA Instr
Exemplul nr. 1
Să începem cu primul exemplu. În cuvântul Bangalore, găsiți poziția personajului a.
Codul de mai jos va îndeplini sarcina pentru noi.
Cod:
Sub Instr_Example1 () Dim i As Variant i = InStr ("Bangalore", "a") MsgBox i End Sub
Acum rulați codul VBA menționat mai sus folosind tasta F5 sau puteți rula acest cod manual, așa cum se arată în captura de ecran de mai jos.

Ieșire:

Exemplul nr. 2
Acum, în cuvântul Bangalore, găsiți poziția personajului „a” din a treia poziție.
Codul de mai jos va îndeplini sarcina pentru noi.
Cod:
Sub Instr_Example2 () Dim i As Variant i = InStr (3, "Bangalore", "a") MsgBox i End Sub
Pentru a rula codul de mai sus, puteți utiliza tasta F5 sau puteți rula acest cod manual, așa cum se arată în captura de ecran de mai jos.

Ieșire:

Acum, în imaginea de mai sus, priviți diferența față de codul anterior. Deoarece am menționat poziția inițială a personajului ca fiind 3, acesta a ignorat primul caracter „a” din a doua poziție.
Exemplul nr. 3
Acum vom vedea căutări sensibile la majuscule. În cuvântul Bangalore, găsiți litera „A.”
Pentru aceasta, trebuie să furnizăm argumentul de comparare ca vbBinaryCompare.
Cod:
Sub Instr_Example3 () Dim i As Variant i = InStr (1, "Bangalore", "A", vbBinaryCompare) MsgBox i End Sub
Acum rulați acest cod folosind tasta F5 sau puteți rula manual acest cod.

Ieșire:

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 este o funcție VBA, astfel încât să nu o puteți utiliza într-o foaie de lucru Excel ca alte formule încorporate.
- Dacă funcția nu poate găsi șirul 2, rezultatul va fi zero.