Enkel Instr -funksjon | Startposisjon | Null | Instr og If | Saksfølsom søk
Bruk Instr i Excel VBA for å finne posisjonen til en delstreng i en streng. Instr -funksjonen er ganske allsidig.
Plasser en kommandoknapp på regnearket og legg til kodelinjene nedenfor. For å utføre kodelinjene, klikk på kommandoknappen på arket.
Enkel Instr -funksjon
Som standard begynner Instr -funksjonen å søke i begynnelsen av strengen (posisjon 1).
Kode:
Dim state As String
state = "Virginia"
MsgBox InStr (tilstand, "gin")
Resultat:
Merk: streng "gin" funnet i posisjon 4.
Startposisjon
Den andre Instr -funksjonen nedenfor begynner å søke på posisjon 7.
Kode:
Dim state As String
state = "South Carolina"
MsgBox InStr (tilstand, "o")
MsgBox InStr (7, tilstand, "o")
Resultat:
Forklaring: den første Instr -funksjonen finner strengen "o" i posisjon 2. Den andre Instr -funksjonen begynner å søke i posisjon 7 og finner strengen "o" i posisjon 10.
Null
Instr -funksjonen returnerer 0 hvis strengen ikke blir funnet (viktig som vi vil se neste).
Kode:
Dim state As String
state = "Florida"
MsgBox InStr (tilstand, "oss")
Resultat:
Konklusjon: strengen "oss" ikke funnet.
Instr og If
La oss lage et enkelt VBA -program som bruker Instr funksjon.
Kode:
Dim state As String, substring As String
state = Range ("A2"). Verdi
delstreng = Område ("B2"). Verdi
Hvis InStr (tilstand, delstreng)> 0 Da
Område ("C2"). Verdi = "Fant"
Ellers
Område ("C2"). Verdi = "Ikke funnet"
Slutt om
Resultat når du klikker på kommandoknappen på arket:
Forklaring: streng "outh" funnet på posisjon 2. Instr -funksjonen returnerer 2. Som et resultat plasserer Excel VBA strengen "Found" i celle C2.
Saksfølsom søk
Som standard utfører Instr-funksjonen et saksfølsomt søk. Skriv inn strengen "dakota" i celle B2 og klikk på kommandoknappen på arket.
Forklaring: strengen "dakota" ble ikke funnet (første bokstav er ikke brukt med store bokstaver). Instr -funksjonen returnerer 0. Som et resultat plasserer Excel VBA strengen "Ikke funnet" i celle C2.
Oppdater koden på følgende måte for å utføre et ufølsomt søk:
Dim state As String, substring As String
state = Range ("A2"). Verdi
delstreng = Område ("B2"). Verdi
Hvis InStr (1, state, substring, vbTextCompare)> 0 Then
Område ("C2"). Verdi = "Fant"
Ellers
Område ("C2"). Verdi = "Ikke funnet"
Slutt om
Resultat når du klikker på kommandoknappen på arket:
Forklaring: Instr -funksjonen vist ovenfor har 4 argumenter. For å utføre et uvesentlig søk må du alltid angi en startposisjon (første argument) og bruke vbTextCompare (fjerde argument).