Returnerer en variant (langt) som angir plasseringen av den første forekomsten av en streng sammen med en annen.
Syntaks
InStr ([start, ] string1, string2 [, compare ] )
Syntaksen for funksjonen InStr har følgende argumenter:
Argument |
Beskrivelse |
---|---|
start |
Valgfritt. Numerisk uttrykk som angir startposisjonen for hvert søk. Hvis det utelates, begynner søket ved første tegnplassering. Hvis start inneholder Null, oppstår det en feil. Argumentet start kreves hvis compare er angitt. |
streng1 |
Obligatorisk. Strenguttrykk som søkes i. |
streng2 |
Obligatorisk. Strenguttrykk søkt. |
sammenlign |
Valgfritt. Angir typen strengsammenligning. Hvis sammenlign er Null, oppstår det en feil. Hvis sammenligning utelates, bestemmer innstillingenFor sammenligning av alternativ sammenligning sammenligningstypen. Angi en gyldig LCID (LocaleID) for å bruke regler for nasjonal innstilling i sammenligningen. |
Tips!: Uttrykksverktøyet har IntelliSense, slik at du kan se hvilke argumenter uttrykket krever.
Innstillinger
Innstillingene for sammenligningsargumentet er:
Konstant |
Value |
Beskrivelse |
---|---|---|
vbUseCompareOption |
-1 |
Utfører en sammenligning ved hjelp av innstillingen for Option Compare-setningen . |
vbBinaryCompare |
0 |
Utfører en binær sammenligning. |
vbTextCompare |
1 |
Utfører en tekstsammenligning. |
Returner verdier
If |
InStr returnerer |
---|---|
streng1 er tom |
0 |
streng1 er null |
Null |
streng2 er tom |
start |
streng2 er null |
Null |
finner ikke streng2 |
0 |
streng2 finnes i streng1 |
Plasseringen der treff blir funnet |
start > streng2 |
0 |
Merknader
InStrB-funksjonen brukes med bytedata i en streng. I stedet for å returnere tegnplasseringen for den første forekomsten av én streng i en annen, returnerer InStrB byteposisjonen.
Eksempler
Bruke InStr-funksjonen i et uttrykk Du kan bruke InStr der du kan bruke uttrykk. Hvis du for eksempel vil finne posisjonen til den første perioden (.) i et felt som inneholder IP-adresser (kalt IPAddress), kan du bruke InStr til å finne den, slik som dette:
InStr(1,[IPAddress],".")
InStr-funksjonen undersøker hver verdi i IPAddress-feltet og returnerer posisjonen til den første perioden. Derfor, hvis den første delen av IP-adressen er 10., returnerer funksjonen verdien 3.
Du kan deretter bruke andre funksjoner, som opererer på utdataene fra InStr-funksjonen , til å trekke ut delen av IP-adressen som kommer før den første perioden, slik som dette:
Left([IPAddress],(InStr(1,[IPAddress],".") -1))
I dette eksemplet, InStr(1,[IPAddress],".") returnerer posisjonen til den første perioden. Subtrahing 1 determines how many characters precede the first period, in this case, 2. Venstre-funksjonen trekker deretter ut så mange tegn fra den venstre delen av IPAddress-feltet, og returnerer verdien 10.
Bruk InStr i VBA-kode
Obs!: I eksemplene nedenfor vises bruken av denne funksjonen i en VBA-modul (Visual Basic for Applications).
Dette eksemplet bruker InStr-funksjonen til å returnere posisjonen til den første forekomsten av én streng i en annen.
Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' String to search in.
SearchChar = "P" ' Search for "P".
' A textual comparison starting at position 4. Returns 6.
MyPos = Instr(4, SearchString, SearchChar, 1)
' A binary comparison starting at position 1. Returns 9.
MyPos = Instr(1, SearchString, SearchChar, 0)
' Comparison is binary by default
' (last argument is omitted).
MyPos = Instr(SearchString, SearchChar) ' Returns 9.
MyPos = Instr(1, SearchString, "W") ' Returns 0.