VBA InStr-functie
In VBA hebben we een functie genaamd InStr-functie die wordt gebruikt om de positie van het eerste exemplaar van een substring in een string te retourneren. Dat betekent dat we bijvoorbeeld een naam hebben die "Jhon" wordt genoemd en dat we het voorkomen van de positie van het H-alfabet in de string moeten vinden. Hier wordt de functie voor gebruikt.
Formule voor InStr-functie in Excel VBA
Excel VBA InStr-functie heeft de volgende syntaxis:
In de syntaxis zijn Start en vergelijking optioneel, terwijl string- en substringwaarden vereist zijn. Een string is een string waar we onze substring willen vinden en substring is de waarde die moet worden gevonden in de string. Stel dat als we de bovenstaande syntaxis in ons voorbeeld van Jhon boven de VBA-code zouden moeten gebruiken, deze hieronder zou zijn,
Instr ("Jhon", "H") en het resultaat zou 2 zijn omdat de positie van alfabet H 2 is in de tekenreeks.
Nu gaan we naar de optionele delen van de syntaxis, start en vergelijk. Het begin is de positie van de tekenreeks van waaruit we de zoekopdracht willen starten, terwijl vergelijken van drie typen is,
- VbUseCompareOption: (-1) Het wordt gebruikt om opties te vergelijken.
- VbBinaryCompare: (0) Het wordt gebruikt om binaire vergelijkingen te maken.
- VbTextCompare: (1) Het wordt gebruikt voor de tekstuele vergelijking.
Maar we hebben een variabele nodig om de waarde van het resultaat op te slaan. Omdat de waarde een geheel getal is, moet de gedefinieerde variabele ook een geheel getal zijn. Als we nu de waarde hebben berekend, moeten we ook het resultaat weergeven. We gebruiken de msgbox-functie om het resultaat weer te geven.
Hoe de Excel VBA InStr-functie te gebruiken?
We zullen leren hoe een VBA InStr Excel-functie te gebruiken met enkele voorbeelden.
U kunt deze VBA InStr Excel-sjabloon hier downloaden - VBA InStr Excel-sjabloonVBA InStr-functie - Voorbeeld # 1
In de bovenstaande uitleg gebruikte ik het woord Jhon als een string en wilde de positie van H in de string vinden. Ik zal de code hiervoor schrijven in VBA en de functie Instr gebruiken om de positie van J in de string te vinden.
Volg de onderstaande stappen om de InStr-functie in VBA te gebruiken.
Stap 1: Klik op het tabblad Ontwikkelaars op Visual Basic om de VB-editor te openen.
Stap 2: Zodra de module is geopend, declareert u een subfunctie om de code te schrijven.
Code:
Sub Vergelijk () Einde Sub
Stap 3: Nu is de functie gedeclareerd, we moeten een variabele declareren om de positie van de substring op te slaan.
Code:
Sub Compare () Dim Pos As Integer End Sub
Stap 4: Nu schrijven we de InStr-functie om de positie van onze substring te achterhalen.
Code:
Sub Compare () Dim Pos As Integer Pos = InStr ("Jhon", "J") End Sub
Stap 5: Om de positie van de substring als een waarde te retourneren, gebruiken we de MsgBox-functie en sluiten we de subfunctie.
Code:
Sub Vergelijk () Dim Pos As Integer Pos = InStr ("Jhon", "J") MsgBox Pos End Sub
Stap 6: Als we de code uitvoeren, wordt de positie van alfabet J in de tekenreeks weergegeven.
Stap 7: Als we de substring wijzigen om te controleren of de code correct werkt, zoeken we het alfabet n in de tekenreeks.
Code:
Sub Vergelijk () Dim Pos As Integer Pos = InStr ("Jhon", "n") MsgBox Pos End Sub
Stap 8: Als we nu de code uitvoeren, kunnen we de positie van alfabet n in de tekenreeks zien.
VBA InStr-functie - Voorbeeld # 2
Nu hebben we gezien wat de vereiste argumenten van de functie doen, laten we nu de optionele argumenten gebruiken. De reeks is: "Ik ben een goede jongen maar geen goede hardloper". We vinden de substring 'Good' uit de string, maar negeren het eerste Good uit de zin.
Volg de onderstaande stappen om de InStr-functie in VBA te gebruiken.
Stap 1: Open de VB-editor op het tabblad van de ontwikkelaar door op Visual Basic te klikken.
Stap 2: Begin met het declareren van een subfunctie.
Code:
Sub Compare1 () Einde Sub
Stap 3: Declareer nu een variabele om de positie van de substring op te slaan.
Code:
Sub Compare1 () Dim Pos1 As Integer End Sub
Stap 4: Nu zullen we de InStr-functie gebruiken om de positie van de string te vinden.
Code:
Sub Compare1 () Dim Pos1 As Integer Pos = InStr (12, "Ik ben een Good Boy maar bot een Good Runner", "Good", vbBinaryCompare) End Sub
Stap 5: Nu gebruiken we de Msgbox-functie om de waarde van de tekenreeks te retourneren.
Code:
Sub Compare1 () Dim Pos1 As Integer Pos = InStr (12, "Ik ben een Good Boy maar bot een Good Runner", "Good", vbBinaryCompare) MsgBox Pos End Sub
Stap 6: Als we nu de code uitvoeren, kunnen we de positie van de substring krijgen.
Verklaring van Excel VBA Instr-functie
De functie InStr in VBA wordt gebruikt om de positie van de waarde van de substring in een tekenreeks te retourneren. Wat gebeurt er als de waarde niet wordt gevonden? Als de waarde niet in de tekenreeks wordt gevonden, is het weergegeven resultaat nul.
Een ding dat we altijd moeten onthouden is dat de functie Instr hoofdlettergevoelig is. Om dit te bewijzen gaan we naar voorbeeld 1 waar we de instr-functie hebben gebruikt om een alfabet te zoeken.
Wat gebeurt er als de substring 'N' is in plaats van 'n'? laat het ons weten. Ik heb de hoofdletter van het alfabet in de string gewijzigd.
Als ik nu de code uitvoer, krijg ik het resultaat zoals hieronder wordt weergegeven.
Dit bewijst dat de instr-functie hoofdlettergevoelig is.
Dingen om te onthouden
- De twee verplichte velden zijn String en Substring.
- Instr-functie is hoofdlettergevoelig.
- De waarde van de InStr-functie is een geheel getal.
Aanbevolen artikelen
Dit is een handleiding geweest voor de VBA InStr-functie. Hier hebben we besproken hoe u Excel VBA InStr-functie kunt gebruiken, samen met praktische voorbeelden en een downloadbare Excel-sjabloon. U kunt ook onze andere voorgestelde artikelen doornemen -
- VBA VLOOKUP-functie
- Excel SWITCH-functie
- Volledige gids voor VBA bij fout
- Gebruik van de schuifbalk in Excel