Vraća vrijednost Variant (Long) koja označava položaj prvog pojavljivanja jednog niza unutar drugog.
Sintaksa
InStr([start, ] niz1, niz2 [, usporedi ] )
Sintaksa funkcije InStr sadrži ove argumente:
| Argument | Opis |
|---|---|
| pocetak | Neobavezno. Brojčani izraz koji određuje početni položaj svakog pretraživanja. 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 unutar kojeg se provodi pretraživanje. |
| niz2 | Obavezno. Traženi nizovni izraz. |
| usporedba | Neobavezno. Određuje vrstu usporedbe nizova. Ako usporedba ima vrijednost Null, doći će do pogreške. Ako izostavite usporedbu , postavka OptionCompare određuje vrstu usporedbe. Navedite valjani LCID (LocaleID) da biste u usporedbi koristili pravila specifična za regionalne sheme. |
Savjet
Sastavljač izraza ima IntelliSense koji vam omogućuje prikaz argumenata koje izraz zahtijeva.
Postavke
Postavke argumenta usporedbe :
| Konstanta | Vrijednost | Opis |
|---|---|---|
| vbUseCompareOption | -1 | Izvodi usporedbu pomoću postavke naredbe Usporedba mogućnosti . |
| vbBinaryCompare | 0 | Izvodi binarnu usporedbu. |
| vbTextCompare | 1 | Izvodi tekstualnu usporedbu. |
Vraćene vrijednosti
| Ako | InStr vraća |
|---|---|
| niz1 ima nultu duljinu | 0 |
| niz1 je Null | Null |
| niz2 ima nultu duljinu | Početak |
| string2 is Null | Null |
| niz2 is not found | 0 |
| niz2 se nalazi unutar niza1 | Položaj na kojem se traži podudaranje |
| start > niz2 | 0 |
Napomene
Funkcija InStrB koristi se s bajtovnim podacima 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 izrazuInStr možete koristiti svugdje gdje možete koristiti izraze. Ako, primjerice, želite pronaći položaj prve točke (.) u polju koje sadrži IP adrese (nazvane IPAddress), možete ga pronaći pomoću oznake InStr , i to ovako:
InStr(1;[IPAddress];".")
Funkcija InStr pregledava svaku vrijednost u polju IPAddress i vraća položaj prvog razdoblja. Dakle, ako je prvi dio IP adrese 10., funkcija vraća vrijednost 3.
Potom možete koristiti druge funkcije koje rade na izlazu funkcije InStr da biste izdvojili dio IP adrese koji prethodi prvom točki, i to ovako:
Left([IPAddress],(InStr(1,[IPAddress],".")-1))
U ovom primjeru, InStr(1,[IPAddress],".") Vraća položaj prvog razdoblja. Oduzimanjem 1 određuje se broj znakova koji prethodi prvoj točki, a u ovom slučaju 2. Funkcija Left zatim izdvaja taj broj znakova iz lijevog dijela polja IPAddress te 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 primjeru funkcija InStr vraća položaj 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.