Palauttaa variantin (Long), joka määrittää toisessa merkkijonossa olevan yhden merkkijonon ensimmäisen esiintymän sijainnin.
Syntaksi
InStr ([alku, ] merkkijono1, merkkijono2 [, vertailu ] )
InStr-funktion syntaksilla on seuraavat argumentit:
Argumentti |
Kuvaus |
---|---|
alku |
Valinnainen. Numeerinen lauseke, joka määrittää kunkin haun alkamiskohdan. Jos se jätetään pois, haku alkaa ensimmäisen merkin kohdasta. Jos alku sisältää tyhjäarvon, ilmenee virhe. Alku-argumentti on pakollinen, jos vertailu on määritetty. |
merkkijono1 |
Pakollinen. Merkkijonolauseke, johon haku kohdistuu. |
merkkijono2 |
Pakollinen. Merkkijonolauseke, jota haetaan. |
vertailu |
Valinnainen. Määrittää merkkijonovertailutyypin. Jos vertailu on tyhjäarvo, ilmenee virhe. Jos vertailu jätetään pois, Asetuksenvertailu-asetus määrittää vertailun lajin. Määritä kelvollinen LCID-tunniste (aluekohtaisen asetuksen tunniste) käyttämään aluekohtaisia sääntöjä vertailussa. |
Vihje: Lausekkeenmuodostimessa on IntelliSense, joten näet, mitä argumentteja lauseke vaatii.
Asetukset
Vertailu-argumentin asetukset ovat seuraavat:
Vakio |
Arvo |
Kuvaus |
---|---|---|
vbUseCompareOption |
-1 |
Suorittaa vertailun käyttämällä Asetuksen vertailu -lausekkeen asetusta. |
vbBinaryCompare |
0 |
Suorittaa binaarisen vertailun. |
vbTextCompare |
1 |
Suorittaa tekstivertailun. |
Palautusarvot
Jos |
InStr palauttaa |
---|---|
merkkijono1 on tyhjä |
0 |
merkkijono1 on tyhjäarvo |
tyhjäarvo |
merkkijono2 on tyhjä |
alku |
merkkijono2 on tyhjäarvo |
tyhjäarvo |
merkkijono2:ta ei löydy |
0 |
merkkijono2 löytyy merkkijono1:stä |
Sijainti, josta vastine löydetään. |
alku > merkkijono2 |
0 |
Huomautuksia
InStrB-funktiota käytetään merkkijonoon sisältyvien tavutietojen kanssa. InStrB palauttaa tavun sijainnin sen sijaan, että se palauttaisi toisessa merkkijonossa olevan yhden merkkijonon ensimmäisen esiintymän merkin.
Esimerkkejä
InStr-funktion käyttäminen lausekkeessa Voit käyttää InStr-funktiota niissä kohdissa, missä voit käyttää lausekkeitakin. Jos haluat löytää ensimmäisen pisteen (.) sijainnin kentästä, joka sisältää IP-osoitteet (nimellä IPOsoite), voit etsiä sen InStr-funktion avulla seuraavasti:
InStr(1,[IPOsoite],".")
InStr-funktio tutkii jokaisen IPOsoite-kentän arvon ja palauttaa ensimmäisen pisteen sijainnin. Jos IP-osoitteen ensimmäinen osa on 10., funktio palauttaa arvon 3.
Käyttämällä sen jälkeen muita funktioita InStr-funktion tuloksessa voit poimia ensimmäistä pistettä edeltävän IP-osoitteen osan seuraavasti
Left([IPOsoite],(InStr(1,[IPOsoite],”.”) -1))
Tässä esimerkissä InStr(1,[IPOsoite],”.”) palauttaa ensimmäisen pisteen sijainnin. Vähentämällä 1 määritetään, kuinka monta merkkiä ensimmäistä pistettä edeltää, eli tässä tapauksessa 2. Left-funktio poimii sen jälkeen niin monta merkkiä IPOsoite-kentän vasemmasta osasta ja palauttaa arvon 10.
InStr-funktion käyttäminen VBA-koodissa
Huomautus: Seuraavissa esimerkeissä kerrotaan, kuinka tätä funktiota käytetään Visual Basic for Applications (VBA) -moduulissa.
Tässä esimerkissä InStr-funktiota käytetään palauttamaan toisessa merkkijonossa olevan yhden merkkijonon ensimmäisen esiintymän sijainti.
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.