Vraća vrijednost Variant (Long) koja označava položaj prvog pojavljivanja jednog niza unutar drugog.
Sintaksa
InStr ([start, ] string1, string2 [, compare ] )
Sintaksa funkcije InStr sadrži ove argumente:
Argument |
Opis |
---|---|
pocetak |
Neobavezno. Brojčani izraz koji postavlja početni položaj za svako pretraživanje. Ako izostavite taj argument, pretraživanje će započeti od položaja prvog znaka. Ako početak sadrži vrijednost Null, doći će do pogreške. Ako je određen argument usporedba, potreban je i argument pocetak. |
niz1 |
Obavezno. Nizovni izraz koji se pretražuje. |
niz2 |
Obavezno. Traženi nizovni izraz. |
usporedba |
Neobavezno. Određuje vrstu usporedba nizova. Ako usporedba ima vrijednost Null, doći će do pogreške. Ako je usporedba izostavljena, postavka Usporedba mogućnosti određuje vrstu usporedbe. Navedite valjani LCID (LocaleID) koji će koristiti pravila specifična za regionalne postavke u usporedbi. |
Savjet: Sastavljač izraza sadrži IntelliSense, pa možete vidjeti koje argumente izraz zahtijeva.
Postavke
Postavke argumenta usporedbe su:
Konstanta |
Value (Vrijednost) |
Description (Opis) |
---|---|---|
vbUseCompareOption |
-1 |
Izvodi usporedbu pomoću postavke naredbe Usporedba mogućnosti. |
vbBinaryCompare |
0 |
Izvodi binarnu usporedbu. |
vbTextCompare |
1 |
Izvodi tekstualnu usporedbu. |
Vraćanje vrijednosti
Ako |
InStr vraća |
---|---|
niz1 je nulta duljina |
0 |
niz1 ima vrijednost Null |
Null |
niz2 je nulta duljina |
pocetak |
niz2 ima vrijednost Null |
Null |
niz2 nije pronađen |
0 |
niz2 nalazi se unutar niza1 |
Položaj na kojem se traži podudaranje |
pokretanje > niz2 |
0 |
Napomene
Funkcija InStrB koristi se s bajtnim podacima sadržanima u nizu. Umjesto vraćanja položaja znaka prvog pojavljivanja jednog niza unutar drugog, InStrB vraća položaj bajta.
Primjeri
Korištenje funkcije InStr u izrazu InStr možete koristiti gdje god možete koristiti izraze. Ako, primjerice, želite pronaći položaj prvog razdoblja (.) u polju koje sadrži IP adrese (pod nazivom IPAddress), možete ga pronaći pomoću funkcije InStr , na primjer:
InStr(1;[IPAddress],".")
Funkcija InStr provjerava svaku vrijednost u polju IPAddress i vraća položaj prvog razdoblja. Stoga, ako je prvi dio IP adrese 10., funkcija vraća vrijednost 3.
Zatim možete koristiti druge funkcije, koje funkcioniraju na izlazu funkcije InStr , da biste izdvojili dio IP adrese koji prethodi prvom razdoblju, ovako:
Left([IPAddress],(InStr(1;[IPAddress],".") -1))
U ovom primjeru InStr(1;[IPAddress],".") vraća položaj prvog razdoblja. Oduzimanje 1 određuje koliko znakova prethodi prvom razdoblju, u ovom slučaju 2. Funkcija Left zatim izdvaja mnogo znakova iz lijevog dijela polja IPAddress i vraća vrijednost 10.
Koristi InStr u VBA kodu
Napomena: Primjeri koji slijede prikazuju korištenje te funkcije u modulu jezika Visual Basic for Applications (VBA).
U ovom se primjeru funkcija InStr koristi za vraćanje položaja prvog pojavljivanja jednog niza unutar drugog.
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.