Pateikia variantą (ilgąjį), nurodantį pirmojo vienos eilutės panaudojimo kitoje eilutėje vietą.
Sintaksė
InStr([start, ] string1, string2 [, palyginti ] )
Funkcijos InStr sintaksę sudaro šie argumentai:
| Argumentas | Aprašas |
|---|---|
| pradžia | Pasirinktinis. Skaitinis reiškinys, nustatantis 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. Eilutės reiškinys, kuriame ieškoma. |
| eilutė2 | Būtinas. Ieškoma eilutės išraiška. |
| palyginti | Pasirinktinis. Nurodomas eilučių palyginimo tipas. Jei argumentas palyginti yra Null, įvyksta klaida. Jei palyginimas praleidžiamas, OptionCompare parametras nustato palyginimo tipą. Nurodykite tinkamą LCID (LocaleID), kad palyginimui būtų naudojamos konkrečios lokalės taisyklės. |
Patarimas
Reiškinio daryklėje yra "IntelliSense", todėl matote, kokie argumentai turi būti išraiškoje.
Parametrai
Argumento palyginimo parametrai yra:
| Konstanta | Reikšmė | Aprašymas |
|---|---|---|
| vbUseCompareOption | –1 | Atlieka palyginimą naudodamas sakinio Option Compare parametrą. |
| vbBinaryCompare | 0 | Atlieka dvejetainį palyginimą. |
| vbTextCompare | 1 | Atlieka teksto palyginimą. |
Pateikiamos reikšmės
| If | InStr grąžina |
|---|---|
| eilutė1 yra nulinio ilgio | 0 |
| eilutė1 yra neapibrėžta reikšmė | Null |
| eilutė2 yra nulinio ilgio | pradėti |
| eilutė2 yra neapibrėžta reikšmė | Null |
| eilutė2 nerasta | 0 |
| eilutė2 randama eilutė1 | Vieta, kurioje rastas atitikmuo |
| Start > string2 | 0 |
Pastabos
Funkcija InStrB naudojama su baito duomenims, esančiais eilutėje. Užuot grąžinusi pirmojo vienos eilutės panaudojimo kitoje eilutėje simbolio poziciją, InStrB grąžina baito padėtį.
Pavyzdžiai
Funkcijos InStr naudojimas reiškinyjeInStr galite naudoti visur, kur tik galite naudoti reiškinius. Pavyzdžiui, jei norite rasti pirmojo laikotarpio (.) poziciją lauke, kuriame yra IP adresai (pavadintas IPAddress), galite naudoti InStr , kad ją rastumėte, pvz.:
InStr(1,[IPAddress],".")
Funkcija InStr patikrina kiekvieną reikšmę lauke IPAddress 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 su funkcijos InStr išvestimi, kad išgautumėte IP adreso dalį, esančią prieš pirmąjį laikotarpį, pvz.:
Left([IPAddress],(InStr(1,[IPAddress],".")-1))
Šiame pavyzdyje InStr(1,[IPAddress],".") Grąžina pirmojo laikotarpio padėtį. Atėmus 1 nustatoma, kiek simbolių eina prieš pirmąjį tašką, šiuo atveju – 2. Tada funkcija "Left" išgauna tiek simbolių iš kairės "IPAddress" lauko dalies ir grąžina 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 , grąžinanti pirmojo vienos eilutės panaudojimo kitoje eilutėje vietą.
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.