VBA InStr - Top 5 voorbeelden om Excel VBA InStr-functie te gebruiken

Excel VBA InStr-functie

Instr in VBA wordt gebruikt om de positie van een bepaalde substring in een string te achterhalen nadat we de vergelijkingsmethode met de functie hebben gespecificeerd, er zijn vier verschillende vergelijkingsmethoden voor deze functie, Instr is een stringfunctie maar de output die door de functie wordt geretourneerd is numeriek, zodat de uitvoer van deze functie een integer-variabele is.

String in VBA is niets anders dan een reeks tekens, dwz alle teksten die met dubbele aanhalingstekens worden geleverd, worden als strings behandeld. InStr-functie is een ingebouwde tekstfunctie die wordt gebruikt om tekenreeksen te manipuleren. Bijvoorbeeld: als u een subtekenreeks uit een zin wilt extraheren of als u wijzigingen in het lettertype van een bepaalde tekenreeks in een reeks tekens wilt toepassen, of als u de positie van een teken en vele andere mogelijkheden wilt vinden, kunt u dat doen gebruik InStr.

Syntaxis

Het heeft 4 argumenten, zoals weergegeven in de onderstaande afbeelding.

  • (Start): dit is niet verplicht. Dit is de numerieke waarde die we nodig hebben om te specificeren vanaf welke positie van de string Instr-functie begint te zoeken naar de geleverde tekst. Bijvoorbeeld: als u wilt het teken te zoeken “a” in het woord “Bangalore” uit de 3 e positie, moeten we de Instr functie vertellen uitgangssituatie 3. Dus vanaf de 3 e positie, het karakter “a” is de 5 e plaats. Als u deze parameter negeert, is de standaardwaarde 1.
  • String 1: Dit is de daadwerkelijke string die we aanleveren, dwz uit deze tekst proberen we de substring te vinden. Als u bijvoorbeeld zoekt naar de tekenreeks "a" in "Bangalore", Tekenreeks 1 in Bangalore.
  • String 2: Dit is niets anders dan de string waarnaar we zoeken. Als u bijvoorbeeld zoekt naar de tekenreeks "a" in "Bangalore", is tekenreeks 2 a .
  • (Compare): Dit is weer een optioneel argument. Er zijn drie soorten opties beschikbaar in het (vergelijk) argument.
  • vbBinaryCompare: dit is niets anders dan een hoofdlettergevoelige zoekopdracht van de substring (string 2) in String 1. Als we bijvoorbeeld zoeken naar 'a' in het woord 'Bangalore', retourneert Instr 2 als resultaat, en als je zoeken naar "A" in het woord "Bangalore", zou Instr 0 als resultaat retourneren omdat de opgegeven tekenreeks een hoofdletterwaarde is.

We kunnen ook nul (0) als argument plaatsen.

vbTextCompare: Dit is geen hoofdlettergevoelige zoekopdracht van de string 2 in string 1. Als we bijvoorbeeld zoeken naar "a" in het woord "Bangalore", zou Instr 2 als resultaat retourneren, en als u zoekt naar " A ” in het woord “ Bangalore ”, zou Instr ook 2 teruggeven. Logica is A = a, B = b, C = c etc.….

We kunnen ook één (1) als argument plaatsen.

vbDatabaseCompare: dit wordt gebruikt om de informatie uit uw database, dwz Microsoft Access-database, te vergelijken.

We kunnen ook één (-1) als argument invoeren.

Top 5 voorbeelden van het gebruik van VBA Instr-functie

Voorbeeld 1

Laten we beginnen met het eerste voorbeeld. Zoek in het woord Bangalore de positie van het teken a.

De onderstaande code voert de taak voor ons uit.

Code:

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

Voer nu de hierboven gegeven VBA-code uit met behulp van de F5-toets, of u kunt deze code ook handmatig uitvoeren, zoals weergegeven in de onderstaande schermafbeelding.

Uitgang:

Voorbeeld 2

Zoek nu in het woord Bangalore de positie van het teken "a" vanaf de derde positie.

De onderstaande code voert de taak voor ons uit.

Code:

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

Om de hierboven gegeven code uit te voeren, kunt u de F5-toets gebruiken, of u kunt deze code ook handmatig uitvoeren, zoals weergegeven in de onderstaande schermafbeelding.

Uitgang:

Kijk nu in de bovenstaande afbeelding naar het verschil met de vorige code. Omdat we de beginpositie van het karakter 3 hebben genoemd, negeerde het het eerste karakter “a” op de 2 e positie.

Voorbeeld # 3

Nu zullen we hoofdlettergevoelig zoeken zien. Zoek in het woord Bangalore de letter 'A'.

Hiervoor moeten we het vergelijkingsargument opgeven als vbBinaryCompare.

Code:

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

Voer deze code nu uit met behulp van de F5-toets, of u kunt deze code ook handmatig uitvoeren.

Uitgang:

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 is een VBA-functie, zodat u deze niet in een Excel-werkblad kunt gebruiken zoals andere ingebouwde formules.
  • Als de functie String 2 niet kan vinden, is het resultaat nul.

Interessante artikelen...