Excel VBA InStr-funksjon
Instr i VBA brukes til å finne ut posisjonen til en gitt substring i en streng etter at vi har spesifisert sammenligningsmetoden til funksjonen, det er fire forskjellige sammenligningsmetoder for denne funksjonen, Instr er en strengfunksjon, men utgangen som returneres av funksjonen er numerisk slik at utgangen denne funksjonen er i et heltallvariabel.
Streng i VBA er ingenting annet enn en serie tegn, dvs. at alle tekstene som er utstyrt med doble anførselstegn blir behandlet som strenger. InStr-funksjon er en innebygd tekstfunksjon som brukes til å manipulere strenger. For eksempel - Hvis du vil trekke ut et underlag fra en setning eller hvis du vil bruke endringer i fontdesign på en bestemt streng i en serie tegn, eller hvis du vil finne posisjonen til et tegn og mange andre muligheter, kan du bruk InStr.

Syntaks

Den har fire argumenter, som vist i bildet nedenfor.
- (Start): Dette er ikke obligatorisk. Dette er den numeriske verdien vi trenger for å spesifisere fra hvilken posisjon av strengen Instr-funksjonen begynner å lete etter den medfølgende teksten. For eksempel: Hvis du vil søke tegnet “a” i ordet “Bangalore” fra 3 rd posisjon, må vi fortelle Instr funksjon startposisjon som 3. Så fra 3 rd stilling, tegnet “a” er i 5 th stilling. Hvis du ignorerer denne parameteren, er standardverdien 1.
- Streng 1: Dette er den faktiske strengen vi leverer, dvs. fra denne teksten prøver vi å finne understrengen. For eksempel, hvis du leter etter strengen “a” i “Bangalore”, streng 1 i Bangalore.
- Streng 2: Dette er ingenting annet enn hva er strengen vi søker etter. Hvis du for eksempel leter etter strengen “a” i “Bangalore”, er String 2 a .
- (Sammenlign): Dette er igjen et valgfritt argument. Det er tre typer alternativer tilgjengelig i (sammenlign) argumentet.

- vbBinaryCompare: Dette er ingenting annet enn et skift mellom store og små bokstaver i substringen (streng 2) i streng 1. Hvis vi for eksempel søker etter "a" i ordet "Bangalore", vil Instr returnere 2 som et resultat, og hvis du søker etter “A” i ordet “Bangalore”, vil Instr returnere 0 som resultat fordi den medfølgende strengen er store bokstaver.
Vi kan også sette null (0) som argument.
vbTextCompare: Dette er ikke et skift mellom store og små bokstaver i strengen 2 i streng 1. Hvis vi for eksempel søker etter "a" i ordet "Bangalore", vil Instr returnere 2 som et resultat, og hvis du søker etter " A ” i ordet ” Bangalore ”, ville Instr også returnere 2. Logikken er A = a, B = b, C = c osv.….
Vi kan også sette en (1) som argument.
vbDatabaseCompare: Dette brukes til å sammenligne informasjonen fra databasen din, dvs. Microsoft Access-database.
Vi kan også sette en (-1) som argument.
Topp 5 eksempler på bruk av VBA Instr Function
Eksempel 1
La oss komme i gang med det første eksemplet. I ordet Bangalore, finn posisjonen til karakteren a.
Koden nedenfor vil utføre oppgaven for oss.
Kode:
Sub Instr_Example1 () Dim i As Variant i = InStr ("Bangalore", "a") MsgBox i End Sub
Kjør nå ovennevnte VBA-kode ved hjelp av F5-nøkkelen, eller du kan også kjøre denne koden manuelt, som vist i skjermbildet nedenfor.

Produksjon:

Eksempel 2
Nå i ordet Bangalore, finn posisjonen til karakteren “a” fra den tredje posisjonen.
Koden nedenfor vil utføre oppgaven for oss.
Kode:
Sub Instr_Example2 () Dim i As Variant i = InStr (3, "Bangalore", "a") MsgBox i End Sub
For å kjøre ovennevnte kode, kan du bruke F5-tasten, eller du kan også kjøre denne koden manuelt, som vist i skjermbildet nedenfor.

Produksjon:

Nå i bildet ovenfor, se på forskjellen fra forrige kode. Siden vi har nevnt startposisjon av den karakter som tre, det ignorerte det første tegnet “a” på 2 nd posisjon.
Eksempel 3
Nå ser vi store og små bokstaver. I ordet Bangalore, finne bokstaven “A”
For dette må vi levere sammenligningsargumentet som vbBinaryCompare.
Kode:
Sub Instr_Example3 () Dim i As Variant i = InStr (1, "Bangalore", "A", vbBinaryCompare) MsgBox i End Sub
Kjør nå denne koden ved hjelp av F5-nøkkelen, eller du kan også kjøre denne koden manuelt.

Produksjon:

Siden vi har levert sammenligningsargumentet da vbBinaryCompare Instr- funksjonen returnerte resultatet som null fordi det ikke er noen stor bokstav “A” .
Eksempel 4
Nå får vi se et annet saksfølsomt søk. I ordet Bangalore, finne bokstaven “A” Det forrige eksemplet returnerte resultatet som null.
For å overvinne den saksfølsomme tilnærmingen her, må vi oppgi sammenligningsargumentet som vbTextCompare.
Kode:
Sub Instr_Example4 () Dim i As Variant i = InStr (1, "Bangalore", "A", vbTextCompare) MsgBox i End Sub
Kjør nå, denne koden ved hjelp av F5-nøkkelen, eller du kan også kjøre denne koden manuelt.

Produksjon:

Eksempel 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 er en VBA-funksjon, slik at du ikke kan bruke den i et Excel-regneark som andre innebygde formler.
- Hvis funksjonen ikke finner streng 2, blir resultatet null.