Daje tip podataka Varijanta (Dugački) koji navodi položaj prvog pojavljivanja jedne niske unutar druge.
Sintaksa
InStr([početak, ] niska1, niska2 [, poređenje ] )
Sintaksa funkcije InStr ima sledeće argumente:
| Argument | Opis |
|---|---|
| početak | Opcionalno. Numerički izraz koji postavlja početnu poziciju za svaku pretragu. Ako se izostavi, pretraga počinje od prvog mesta znaka. Ako start sadrži vrednost "Null", dobija se greška. Argument start je potreban ako je navedeno poređenje . |
| niska1 | Obavezno. Izraz niske koji se pretražuje. |
| niska2 | Obavezno. Izraz niske koji se traži. |
| uporedi | Opcionalno. Navodi tip poređenja niske. Ako je poređenje bez vrednosti, dobija se greška. Ako se poređenje izostavi, postavka OptionCompare određuje tip poređenja. Navedite važeći LCID (LocaleID) da biste koristili pravila specifična za lokalni standard u poređenju. |
Savet
"Izrada izraza" ima IntelliSense, pa možete da vidite kakvi su argumenti neophodni za vaš izraz.
Postavke
Postavke argumenta za poređenje su:
| konstanta | Vrednost | Pretraga |
|---|---|---|
| vbUseCompareOption | -1 | Izvršava poređenje pomoću postavke izjave Option Compare . |
| vbBinaryCompare | 0 | Izvršava binarno poređenje. |
| vbTextCompare | 1 | Izvršava poređenje teksta. |
Povratne vrednosti
| If | InStr daje |
|---|---|
| niska1 je nulte dužine | 0 |
| niska1 je Null | Null |
| niska2 je nulte dužine | Meni "Start" |
| niska2 je Null | Null |
| niska2 nije pronađena | 0 |
| niska2 se nalazi unutar niske1 | Pozicija na kojoj se pronalazi podudaranje |
| početna > niska2 | 0 |
Primedbe
Funkcija InStrB se koristi sa podacima u bajtovima sadržanim u nisci. Umesto da vrati poziciju znaka prvog pojavljivanja jedne niske unutar druge, InStrB daje poziciju bajta.
Primeri
Korišćenje funkcije InStr u izrazuFunkciju InStr možete da koristite svuda gde možete da koristite izraze. Na primer, ako želite da pronađete poziciju prve tačke (.) u polju koje sadrži IP adrese (pod imenom IPAddress), možete da koristite InStr da biste je pronašli na sledeći način:
InStr(1,[IPAddress],".")
Funkcija InStr ispituje svaku vrednost u polju IPAddress i vraća poziciju prvog perioda. Stoga, ako je prvi deo IP adrese 10., funkcija daje vrednost 3.
Zatim možete da koristite druge funkcije koje rade na izlazu funkcije InStr da biste izdvojili deo IP adrese koji prethodi prvom periodu, ovako:
Left([IPAddress],(InStr(1,[IPAddress],".")-1))
U ovom primeru, InStr(1,[IPAddress],".") Daje poziciju prvog perioda. Oduzimanje broja 1 određuje koliko znakova prethodi prvoj tački, u ovom slučaju, 2. Funkcija Left zatim izdvaja toliko znakova iz levog dela polja IPAddress i daje vrednost 10.
Korišćenje protokola InStr u VBA kodu
Napomena
Primeri koji slede pokazuju upotrebu ove funkcije u Visual Basic for Applications (VBA) modulu.
Ovaj primer koristi funkciju InStr kako bi vratio položaj prvog pojavljivanja jedne niske unutar druge.
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.