Excel VBA InStr funkcija
Instr u VBA koristi se za pronalaženje položaja datog podniza u nizu nakon što odredimo metodu usporedbe funkcije, postoje četiri različite metode usporedbe za ovu funkciju, Instr je funkcija niza, ali izlaz koji funkcija vraća je numerički, tako da je izlaz ove funkcije u cjelobrojnoj varijabli.
String u VBA nije ništa drugo do niz znakova, tj. Svi tekstovi isporučeni s dvostrukim navodnicima tretiraju se kao nizovi. InStr funkcija je ugrađena tekstualna funkcija koja se koristi za manipulaciju žicama. Na primjer - ako iz rečenice želite izdvojiti podniz ili ako želite primijeniti promjene dizajna fonta na određeni niz u nizu znakova ili ako želite pronaći položaj znaka i mnoge druge mogućnosti, možete koristite InStr.

Sintaksa

Ima 4 argumenta, kao što je prikazano na donjoj slici.
- (Start): Ovo nije obvezno. Ovo je numerička vrijednost koju trebamo odrediti s kojeg položaja niza funkcija Instr počinje tražiti isporučeni tekst. Na primjer: ako želite pretražiti znak "a" u riječi "Bangalore" s 3. položaja, početnu poziciju funkcije Instr moramo reći kao 3. Dakle, s 3. pozicije znak "a" je u 5 na th položaju. Ako zanemarite ovaj parametar, zadana vrijednost je 1.
- Niz 1: Ovo je stvarni niz koji isporučujemo, tj. Iz ovog teksta pokušavamo pronaći podniz. Na primjer, ako tražite niz "a" u "Bangaloreu", red 1 u Bangaloreu.
- Niz 2: Ovo nije ništa drugo doli ono što je niz koji tražimo. Na primjer, ako tražite niz "a" u "Bangaloreu", niz 2 je a .
- (Usporedi): Ovo je opet neobavezni argument. U argumentu (usporedi) dostupne su tri vrste opcija.

- vbBinaryCompare: Ovo nije ništa drugo do velika i mala slova pretraga podniza (niza 2) u nizu 1. Na primjer, ako tražimo "a" u riječi "Bangalore", Instr bi kao rezultat vratio 2, traže "A" u riječi "Bangalore", Instr bi vratio 0 kao rezultat jer je isporučeni niz velika vrijednost.
Kao argument možemo staviti i nulu (0).
vbTextCompare: Ovo nije pretraživanje velikih i malih slova niza 2 u nizu 1. Na primjer, ako tražimo "a" u riječi "Bangalore", Instr bi kao rezultat vratio 2, a ako tražite " A " u riječi " Bangalore ", Instr bi također vratio 2. Logika je A = a, B = b, C = c itd.….
Kao argument možemo staviti i jedan (1).
vbDatabaseCompare: Koristi se za usporedbu podataka iz vaše baze podataka, tj. baze podataka Microsoft Access.
Kao argument možemo staviti i jedan (-1).
Top 5 primjera upotrebe VBA Instr funkcije
Primjer # 1
Krenimo s prvim primjerom. U riječi Bangalore pronađite položaj lika a.
Kôd u nastavku izvršit će zadatak za nas.
Kodirati:
Sub Instr_Example1 () Dim i kao varijanta i = InStr ("Bangalore", "a") MsgBox i End Sub
Sada pokrenite gore zadani VBA kôd pomoću tipke F5, a možete ga pokrenuti i ručno, kao što je prikazano na donjoj slici zaslona.

Izlaz:

Primjer # 2
Sada u riječi Bangalore pronađite položaj lika "a" s treće pozicije.
Kôd u nastavku izvršit će zadatak za nas.
Kodirati:
Sub Instr_Example2 () Dim i kao varijanta i = InStr (3, "Bangalore", "a") MsgBox i End Sub
Da biste pokrenuli gore zadani kôd, možete upotrijebiti tipku F5 ili ga možete pokrenuti i ručno, kao što je prikazano na dolje prikazanom snimku zaslona.

Izlaz:

Sada na gornjoj slici pogledajte razliku od prethodnog koda. Budući da smo početni položaj znaka spomenuli kao 3, zanemario je prvi znak "a" na drugom mjestu.
Primjer # 3
Sada ćemo vidjeti pretragu s velikim i malim slovima. U riječi Bangalore pronađite slovo "A."
Za to moramo dostaviti argument uspoređivanja kao vbBinaryCompare.
Kodirati:
Sub Instr_Example3 () Dim i kao varijanta i = InStr (1, "Bangalore", "A", vbBinaryCompare) MsgBox i End Sub
Sada pokrenite ovaj kôd pomoću tipke F5 ili ga možete pokrenuti i ručno.

Izlaz:

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 je VBA funkcija, tako da je ne možete koristiti u excel radnom listu kao ostale ugrađene formule.
- Ako funkcija ne može pronaći niz 2, rezultat će biti nula.