Returnerer en variant (langt) som angir plasseringen av den første forekomsten av en streng sammen med en annen.
Syntaks
InStr([start, ] streng1, streng2 [, sammenlign ] )
Syntaksen for funksjonen InStr har disse argumentene:
| Argument | Beskrivelse |
|---|---|
| start | Valgfritt. Numerisk uttrykk som angir startpunktet 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. Strenguttrykket det søkes i. |
| streng2 | Obligatorisk. Strenguttrykket det ble søkt i. |
| sammenlign | Valgfritt. Angir strengsammenligningstypen. Hvis sammenlign er Null, oppstår det en feil. Hvis sammenlign utelates, avgjør innstillingen Tilsnittssammenligning sammenligningstypen. Angi en gyldig LCID (LocaleID) for å bruke nasjonale spesifikke regler i sammenligningen. |
Tips
Uttrykksverktøyet inneholder IntelliSense, slik at du kan se hvilke argumenter uttrykket krever.
Innstillinger
Innstillingene for sammenligningsargumentene er:
| Konstant | Verdi | Beskrivelse |
|---|---|---|
| vbUseCompareOption | -1 | Utfører en sammenligning ved hjelp av innstillingen for uttrykket Sammenlign alternativ . |
| vbBinaryCompare | 0 | Utfører en binær sammenligning. |
| vbTextCompare | 1 | Utfører en tekstsammenligning. |
Returverdier
| If | Returnerer InStr |
|---|---|
| streng1 er tom | 0 |
| streng1 er null | Null |
| streng2 er tom lengde | Start |
| streng2 er null | Null |
| finner ikke streng2 | 0 |
| streng2 finnes i streng1 | Plassering der treff blir funnet |
| startstreng2 > | 0 |
Merknader
InStrB-funksjonen brukes med byte-data som finnes i en streng. I stedet for å returnere tegnplasseringen til den første forekomsten av en streng inne i en annen, returnerer InStrB byteposisjonen.
Eksempler
Bruke InStr-funksjonen i et uttrykk Du kan bruke InStr overalt hvor du kan bruke uttrykk. Hvis du for eksempel vil finne posisjonen til den første punktum (.) 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. Hvis den første delen av IP-adressen er 10., returnerer dermed funksjonen verdien 3.
Du kan deretter bruke andre funksjoner, som opererer på utdataene fra InStr-funksjonen , til å trekke ut den delen av IP-adressen som kommer før den første perioden, slik som dette:
Left([IPAddress],(InStr(1,[IPAddress],«.»)-1))
I dette eksemplet er InStr(1,[IPAddress],«.») Returnerer posisjonen til den første perioden. Trekk fra 1 bestemmer hvor mange tegn som går foran første punktum, i dette tilfellet 2. Left-funksjonen trekker deretter ut det antallet 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 en streng sammen med 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.