Pateikia variantą (ilgąjį), nurodantį pirmojo vienos eilutės panaudojimo kitoje eilutėje vietą.
Sintaksė
InStr ([pradžia, ] eilutė1, eilutė2 [, palyginti ] )
Funkcijos InStr sintaksė turi tokius argumentus:
Argumentas |
Aprašas |
---|---|
pradžia |
Pasirinktinis. Skaitinis reiškinys, kuris nustato kiekvienos ieškos pradžios vietą. Jei praleista, ieška pradedama nuo pirmojo simbolio vietos. Jei pradžioje yra Null, įvyksta klaida. Argumentas pradžia būtinas, jei nurodytas palyginti. |
eilutė1 |
Būtinas. Ieškoma eilutės išraiška. |
eilutė2 |
Būtinas. Ieškoma eilutės išraiška. |
palyginti |
Pasirinktinis. Nurodo eilučių palyginimas tipą. Jei argumentas palyginti yra Null, įvyksta klaida. Jei palyginti praleidžiamas, parametras "OptionCompare " nustato palyginimo tipą. Nurodykite leistiną LCID (LocaleID), kad palyginime būtų naudojamos konkrečios lokalės taisyklės. |
Patarimas: Reiškinio daryklė turi "IntelliSense", todėl galite matyti, kokių argumentų reikia jūsų išraiškai.
Parametrai
Argumento palyginti parametrai yra:
Konstanta |
Reikšmė |
Aprašas |
---|---|---|
vbUseCompareOption |
–1 |
Lyginama naudojant sakinio Option Compare parametrą. |
vbBinaryCompare |
0 |
Atlieka dvejetainį palyginimą. |
vbTextCompare |
1 |
Atlieka tekstinį palyginimą. |
Pateikti reikšmes
If |
InStr pateikia |
---|---|
eilutė1 nulinio ilgio |
0 |
eilutė1 yra Neapibrėžta (Null) |
Null |
eilutė2 yra nulinio ilgio |
pradžia |
string2 is Null |
Null |
eilutė2 nerasta |
0 |
eilutė2 rasta eilutėje1 |
Padėtis, kurioje randamas atitikmuo |
start > string2 |
0 |
Pastabos
Funkcija InStrB naudojama su baitų duomenimis, esančiais eilutėje. Užuot grąžinę pirmojo vienos eilutės pasikartojimo kitoje eilutėje simbolio padėtį, InStrB grąžina baito padėtį.
Pavyzdžiai
Funkcijos InStr naudojimas reiškinyje InStr galite naudoti visur, kur galite naudoti reiškinius. Pavyzdžiui, jei norite rasti pirmojo laikotarpio padėtį (.) lauke, kuriame yra IP adresai (pavadintas IPAddress), galite naudoti InStr , kad jį rastumėte, pvz.:
InStr(1,[IPAddress],".")
Funkcija InStr patikrina kiekvieną lauko IPAddress reikšmę ir grąžina pirmojo laikotarpio padėtį. Taigi, jei pirmoji IP adreso dalis yra 10., funkcija grąžina reikšmę 3.
Tada galite naudoti kitas funkcijas, veikiančias funkcijos InStr išvestyje, norėdami išskleisti prieš pirmąjį laikotarpį einančią IP adreso dalį, pvz.:
Left([IPAddress],(InStr(1,[IPAddress],".") -1))
Šiame pavyzdyje InStr(1,[IPAddress],".") grąžina pirmojo laikotarpio padėtį. Atimant 1 nustatoma, kiek simbolių eina prieš pirmąjį tašką, šiuo atveju 2. Tada funkcija Left išskleidžia, kad daug simbolių iš kairiosios IPAddress lauko dalies, grąžinant reikšmę 10.
InStr naudojimas VBA kode
Pastaba: Pateiktuose pavyzdžiuose parodyta, kaip naudoti šią funkciją „Visual Basic for Applications“ (VBA) modulyje.
Šiame pavyzdyje naudojama funkcija InStr , kad būtų grąžinta pirmojo vienos eilutės pasikartojimo kitoje eilutėje pozicija.
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.