Returnerer en Variant (langt heltal), der angiver placeringen af den første forekomst af en streng i en anden.
Syntaks
InStr ([start, ] streng1, streng2 [, sammenlign ] )
Syntaksen for funktionen InStr har disse argumenter:
Argument |
Beskrivelse |
---|---|
start |
Valgfrit. Numerisk udtryk, der angiver startpositionen for hver søgning. Hvis det udelades, begynder søgningen ved første tegnposition. Hvis start indeholder Null, opstår der en fejl. Argumentet Start er påkrævet, hvis sammenligning er angivet. |
streng1 |
Påkrævet. Strengudtryk, der søges i. |
streng2 |
Obligatorisk. Strengudtryk, der søges efter. |
sammenligning |
Valgfrit. Angiver typen af strengsammenligninger. Hvis sammenlign er Null, opstår der en fejl. Hvis sammenlign udelades, bestemmer indstillingen OptionCompare typen af sammenligning. Angiv et gyldigt LCID (LocaleID/landestandard) for at bruge landestandard-specifikke regler i sammenligningen. |
Tip!: Udtryksgenerator har IntelliSense, så du kan se, hvilke argumenter dit udtryk kræver.
Indstillinger
Indstillingerne for argumentet sammenlign er:
Konstant |
Værdi |
Beskrivelse |
---|---|---|
vbUseCompareOption |
-1 |
Udfører en sammenligning ved hjælp af indstillingen for sætningen Option Compare. |
vbBinaryCompare |
0 |
Udfører en binær sammenligning. |
vbTextCompare |
1 |
Udfører en tekstsammenligning. |
Returværdier
Hvis |
InStr returnerer |
---|---|
streng1 er tom |
0 |
streng1 er Null |
Null |
streng2 er tom |
start |
streng2 er Null |
Null |
streng2 ikke bliver fundet |
0 |
streng2 findes i streng1 |
Position, hvor der blev fundet match |
start > streng2 |
0 |
Bemærkninger
Funktionen InStrB anvendes med bytedata, der er indeholdt i en streng. I stedet for at returnere tegnplaceringen for den første forekomst af én streng inden i en anden, returnerer InStrB bytepositionen.
Eksempler
Brug funktionen InStr i et udtryk Du kan bruge InStr overalt , hvor du kan bruge udtryk. Hvis du f.eks. vil finde placeringen af det første punktum (.) i et felt, der indeholder IP-adresser (kaldet IPAddress), kan du bruge InStr til at finde det, således:
InStr(1,[IPAddress],".")
Funktionen InStr undersøger hver værdi i feltet IPAddress og returnerer placeringen af det første punktum. Det vil sige, at hvis den første del af IP-adressen er 10., returnerer funktionen værdien 3.
Derefter kan du bruge andre funktioner, der arbejder på outputtet fra funktionen InStr for at udtrække den del af IP-adressen, der står før det første punktum, således:
Venstre([IPAddress],(InStr(1,[IPAddress],".")-1))
I dette eksempel inStr(1,[IPAddress],".") returnerer positionen for den første periode. Subtraktion af 1 bestemmer, hvor mange tegn der kommer før det første punktum, i dette tilfælde 2. Funktionen Left udtrækker derefter dette antal tegn fra den venstre del af feltet IPAddress og returnerer værdien 10.
Brug InStr i VBA-kode
Bemærk!: Følgende eksempler demonstrerer brugen af denne funktion i et VBA-modul (Visual Basic for Applications).
I dette eksempel bruges funktionen InStr til at returnere placeringen af den første forekomst af en streng inden i en anden.
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.