Palauttaa variantin (Long), joka määrittää toisessa merkkijonossa olevan yhden merkkijonon ensimmäisen esiintymän sijainnin.
Syntaksi
InStr([start, ] string1, string2 [, compare ] )
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ää merkkijonovertailun tyypin. Jos vertailu on tyhjäarvoinen, tapahtuu virhe. Jos vertailu jätetään pois, OptionCompare-asetus määrittää vertailun tyypin. 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. |
| aloitusmerkkijono2 > | 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-str-lauseketta missä tahansa. Jos esimerkiksi haluat löytää ensimmäisen pisteen (.) sijainnin KENTÄSTÄ, joka sisältää IP-osoitteet (nimeltään IPAddress), voit etsiä sen InStr-toiminnolla 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-koodin 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.