Excel VBA InStr-funktion
Instr i VBA bruges til at finde ud af placeringen af en given substring i en streng, efter at vi har specificeret sammenligningsmetoden til funktionen, der er fire forskellige sammenligningsmetoder for denne funktion, Instr er en strengfunktion, men output returneret af funktionen er numerisk, så output denne funktion er i et heltal variabel.
Streng i VBA er intet andet end en række tegn, dvs. alle tekster, der leveres med dobbelt anførselstegn, behandles som strenge. InStr-funktion er en indbygget tekstfunktion, der bruges til at manipulere strenge. For eksempel - Hvis du vil udtrække en understreng fra en sætning, eller hvis du vil anvende ændringer i skrifttypedesign til en bestemt streng i en række tegn, eller hvis du vil finde placeringen af et tegn og mange andre muligheder, kan du brug InStr.

Syntaks

Den har 4 argumenter, som vist i nedenstående billede.
- (Start): Dette er ikke obligatorisk. Dette er den numeriske værdi, som vi har brug for for at specificere, fra hvilken position i strengen Instr-funktionen begynder at lede efter den leverede tekst. For eksempel: Hvis du ønsker at søge tegnet ”a” i ordet ”Bangalore” fra 3 rd position, er vi nødt til at fortælle Instr funktionen startposition som 3. Så fra 3 rd position, tegnet ”a” er i 5 th position. Hvis du ignorerer denne parameter, er standardværdien 1.
- Streng 1: Dette er den aktuelle streng, vi leverer, dvs. fra denne tekst forsøger vi at finde understrengen. For eksempel, hvis du leder efter strengen "a" i "Bangalore", streng 1 i Bangalore.
- Streng 2: Dette er intet andet end hvad er den streng, vi søger efter. For eksempel, hvis du leder efter strengen “a” i “Bangalore,” er String 2 a .
- (Sammenlign): Dette er igen et valgfrit argument. Der er tre slags muligheder i argumentet (sammenlign).

- vbBinaryCompare: Dette er intet andet end en skift mellem store og små bogstaver i substringen (streng 2) i streng 1. For eksempel, hvis vi søger efter “a” i ordet “Bangalore”, ville Instr returnere 2 som et resultat, og hvis du søger efter "A" i ordet "Bangalore", ville Instr returnere 0 som resultat, fordi den leverede streng er store bogstaver.
Vi kan også sætte nul (0) som argument.
vbTextCompare: Dette er ikke en skift mellem store og små bogstaver i streng 2 i streng 1. For eksempel, hvis vi søger efter "a" i ordet "Bangalore", ville Instr returnere 2 som et resultat, og hvis du søger efter " A ” i ordet ” Bangalore ”, ville Instr også returnere 2. Logik er A = a, B = b, C = c osv.….
Vi kan også sætte en (1) som argument.
vbDatabaseCompare: Dette bruges til at sammenligne oplysningerne fra din database, dvs. Microsoft Access-database.
Vi kan også sætte en (-1) som argument.
Top 5 eksempler på brug af VBA-instrumentfunktion
Eksempel nr. 1
Lad os komme i gang med det første eksempel. I ordet Bangalore skal du finde karakterens position a.
Nedenstående kode udfører opgaven for os.
Kode:
Sub Instr_Example1 () Dim i As Variant i = InStr ("Bangalore", "a") MsgBox i End Sub
Kør nu den ovennævnte VBA-kode ved hjælp af F5-nøglen, eller du kan også køre denne kode manuelt, som vist i nedenstående skærmbillede.

Produktion:

Eksempel 2
Find nu placeringen af karakteren “a” fra tredje position i ordet Bangalore .
Nedenstående kode udfører opgaven for os.
Kode:
Sub Instr_Example2 () Dim i som variant i = InStr (3, "Bangalore", "a") MsgBox i End Sub
For at køre ovennævnte kode kan du bruge F5-tasten, eller du kan også køre denne kode manuelt, som vist i nedenstående skærmbillede.

Produktion:

Se nu på billedet ovenfor, se forskellen fra den forrige kode. Da vi har nævnt startpositionen for tegnet som 3, ignorerede det det første tegn “a” på 2. position.
Eksempel 3
Nu ser vi store og små bogstaver. Find ordet “A.” i ordet Bangalore
Til dette er vi nødt til at levere sammenligningsargumentet som vbBinaryCompare.
Kode:
Sub Instr_Example3 () Dim i som variant i = InStr (1, "Bangalore", "A", vbBinaryCompare) MsgBox i End Sub
Kør nu denne kode ved hjælp af F5-nøglen, eller du kan også køre denne kode manuelt.

Produktion:

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 er en VBA-funktion, så du ikke kan bruge den i et Excel-regneark som andre indbyggede formler.
- Hvis funktionen ikke kan finde streng 2, bliver resultatet nul.