Eenvoudige Instr-functie | Startpositie | Nul | Instr en Als | Hoofdletterongevoelig zoeken
Gebruik maken van Instructie in Excel VBA om de positie van een substring in een string te vinden. De Instr-functie is vrij veelzijdig.
Plaats een opdrachtknop op uw werkblad en voeg de onderstaande coderegels toe. Om de coderegels uit te voeren, klikt u op de opdrachtknop op het blad.
Eenvoudige Instr-functie
Standaard begint de Instr-functie te zoeken aan het begin van de tekenreeks (positie 1).
Code:
Gedimde toestand Als String
staat = "Virginia"
MsgBox InStr(staat, "gin")
Resultaat:
Opmerking: string "gin" gevonden op positie 4.
Begin positie
De tweede Instr-functie hieronder begint te zoeken op positie 7.
Code:
Gedimde toestand Als String
staat = "Zuid-Carolina"
MsgBox InStr(staat, "o")
MsgBox InStr(7, staat, "o")
Resultaat:
Uitleg: de eerste Instr-functie vindt de tekenreeks "o" op positie 2. De tweede Instr-functie begint te zoeken op positie 7 en vindt de tekenreeks "o" op positie 10.
Nul
De functie Instr retourneert 0 als de tekenreeks niet wordt gevonden (belangrijk zoals we hierna zullen zien).
Code:
Gedimde toestand Als String
staat = "Florida"
MsgBox InStr(staat, "ons")
Resultaat:
Conclusie: string "ons" niet gevonden.
Instr en If
Laten we een eenvoudig VBA-programma maken dat gebruikmaakt van de Instr-functie.
Code:
Gedimde toestand As String, substring As String
staat = Bereik ("A2"). Waarde
subtekenreeks = Bereik ("B2"). Waarde
Als InStr(status, subtekenreeks) > 0 Dan
Bereik ("C2"). Waarde = "Gevonden"
Anders
Bereik ("C2"). Waarde = "Niet gevonden"
Stop als
Resultaat wanneer u op de opdrachtknop op het werkblad klikt:
Uitleg: string "outh" gevonden op positie 2. De functie Instr retourneert 2. Als resultaat plaatst Excel VBA de string "Gevonden" in cel C2.
Hoofdletterongevoelig zoeken
Standaard voert de Instr-functie een hoofdlettergevoelige zoekopdracht uit. Voer de tekenreeks "dakota" in cel B2 in en klik op de opdrachtknop op het blad.
Uitleg: string "dakota" niet gevonden (eerste letter niet met hoofdletter). De functie Instr retourneert 0. Als resultaat plaatst Excel VBA de tekenreeks "Niet gevonden" in cel C2.
Om een hoofdletterongevoelige zoekopdracht uit te voeren, werkt u de code als volgt bij:
Gedimde toestand As String, substring As String
staat = Bereik ("A2"). Waarde
subtekenreeks = Bereik ("B2"). Waarde
Als InStr(1, staat, subtekenreeks, vbTextCompare) > 0 Dan
Bereik ("C2"). Waarde = "Gevonden"
Anders
Bereik ("C2"). Waarde = "Niet gevonden"
Stop als
Resultaat wanneer u op de opdrachtknop op het werkblad klikt:
Uitleg: de hierboven getoonde Instr-functie heeft 4 argumenten. Om een hoofdletterongevoelige zoekopdracht uit te voeren, geeft u altijd een startpositie op (eerste argument) en gebruikt u vbTextCompare (vierde argument).