Returnerar ett värde av datatypen Variant (Long) som anger positionen för den första förekomsten av en sträng i en annan sträng.
Syntax
SökIStr ([start, ] sträng1, sträng2 [, jämför ] )
Syntaxen för funktionen SökIStr har följande argument:
Argument |
Beskrivning |
---|---|
start |
Valfritt. Numeriskt uttryck som anger var sökningen ska starta. Om argumentet utelämnas börjar sökningen vid det första tecknet. Om start innehåller Null, uppstår ett fel. Argumentet start är obligatoriskt om jämför används. |
sträng1 |
Obligatoriskt. Det stränguttryck som genomsöks. |
sträng2 |
Obligatoriskt. Stränguttryck som eftersöks. |
jämför |
Valfritt. Anger typen av strängjämförelse. Om jämför är Null uppstår ett fel. Om jämför utelämnas bestämmer OptionCompare-inställningen typen av jämförelse. Ange en giltig LCID (LocaleID) för att använda språkspecifika regler i jämförelsen. |
Tips: Uttrycksverktyget har IntelliSense, så att du kan se vilka argument som krävs för uttrycket.
Inställningar
Inställningarna för argumentet jämför är:
Konstant |
Värde |
Beskrivning |
---|---|---|
vbUseCompareOption |
-1 |
Jämförelsen använder inställningen för Option Compare-uttrycket. |
vbBinaryCompare |
0 |
Utför en binär jämförelse. |
vbTextCompare |
1 |
Utför en textjämförelse. |
Returvärden
Om |
SökIStr returnerar |
---|---|
sträng1 är en tom sträng |
0 |
sträng1 är Null |
Null |
sträng2 är en tom sträng |
start |
sträng2 är Null |
Null |
sträng2 hittas inte |
0 |
sträng2 finns i sträng1 |
Position där matchning hittas |
start > sträng2 |
0 |
Kommentarer
Funktionen SökIStrB används med bytedata som finns i en sträng. I stället för att returnera teckenpositionen för den första förekomsten av en sträng i en annan returnerar SökIStrB bytepositionen.
Exempel
Använda funktionen SökIStr i ett uttryck Du kan använda SökIStr var som helst där du kan använda uttryck. Om du till exempel vill söka efter positionen för den första punkten (.) i ett fält som innehåller IP-adresser (som heter IPAdress), kan du använda SökIStr för att hitta det på följande sätt:
SökIStr(1,[IPAdress],".")
Funktionen SökIStr undersöker varje värde i fältet IPAdress och returnerar positionen för den första punkten. Om den första delen av IP-adressen är 10.returnerar funktionen därför värdet 3.
Sedan kan du på följande sätt använda andra funktioner på resultatet för funktionen SökIStr för att extrahera den del av IP-adressen som föregår den första punkten:
Vänster([IPAdress],(SökIStr(1,[IPAdress],".")-1))
I det här exemplet returnerar SökIStr(1,[IPAdress],"." positionen för den första punkten. Sedan subtraheras 1 för att avgöra hur många tecken som föregår den första punkten (i det här fallet 2). Funktionen Vänster hämtar sedan så många tecken från den vänstra delen av fältet IPAdress och returnerar i det här fallet värdet 10.
Använd SökIStr i VBA-kod
Obs!: I exemplen nedan visar vi hur du använder den här funktionen i en Visual Basic for Applications-modul (VBA).
I det här exemplet används funktionen SökIStr för att returnera positionen för den första förekomsten av en sträng i en annan.
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.