Geeft een variant (lang) als resultaat die aangeeft op welke positie de ene tekenreeks de eerste keer voorkomt in een andere tekenreeks.
Syntaxis
InStr ([begin, ] tekenreeks1, tekenreeks2 [, vergelijken ] )
De syntaxis van de functie InStr bevat deze argumenten:
Argument |
Beschrijving |
---|---|
begin |
Optioneel. Een numerieke expressie waarmee de beginpositie voor elke zoekbewerking wordt ingesteld. Als u dit weglaat, wordt vanaf het eerste teken gezocht. Als begin Null bevat, treedt er een fout op. Het argument begin is vereist wanneer vergelijken is opgegeven. |
tekenreeks1 |
Vereist. De tekenreeksexpressie waarin wordt gezocht. |
tekenreeks2 |
Vereist. De gezochte tekenreeksexpressie. |
vergelijken |
Optioneel. Hiermee geeft u het type reeksvergelijking op. Als vergelijken Null is, treedt er een fout op. Als vergelijken wordt weggelaten, bepaalt de instelling OptionCompare het type vergelijking. Geef een geldige LCID (LocaleID) op om regels in de vergelijking te gebruiken die specifiek zijn voor een bepaalde landinstelling. |
Tip: De opbouwfunctie voor expressies heeft IntelliSense, zodat u kunt zien welke argumenten uw expressie nodig heeft.
Instellingen
De instellingen voor het argument vergelijken zijn als volgt:
Constante |
Waarde |
Beschrijving |
---|---|---|
vbUseCompareOption |
-1 |
Hiermee wordt een vergelijking uitgevoerd met de instelling van de instructie Option Compare. |
vbBinaryCompare |
0 |
Hiermee wordt een binaire vergelijking uitgevoerd. |
vbTextCompare |
1 |
Hiermee wordt een tekstvergelijking uitgevoerd. |
Retourwaarden
Als |
Geeft InStr dit als resultaat |
---|---|
tekenreeks1 is een tekenreeks met lengte nul |
0 |
tekenreeks1 is Null |
Null |
tekenreeks2 is een tekenreeks met lengte nul |
begin |
tekenreeks2 is Null |
Null |
tekenreeks2 is niet gevonden |
0 |
tekenreeks2 is gevonden binnen tekenreeks1 |
Positie waar een overeenkomst wordt gevonden |
begin > tekenreeks2 |
0 |
Opmerkingen
De functie InStrB wordt gebruikt met bytegegevens in een tekenreeks. InStrB retourneert de bytepositie in plaats van de tekenpositie waar een tekenreeks voor het eerst voorkomt binnen een andere tekenreeks.
Voorbeelden
De functie InStr gebruiken in een expressie U kunt InStr overal gebruiken waar expressies zijn toegestaan. Als u bijvoorbeeld de positie wilt vinden van de eerste punt (.) in een veld met IP-adressen (met de naam IPAdres), kunt u dit op deze manier doen met InStr:
InStr(1,[IPAdres],".")
De functie InStr onderzoekt elke waarde in het veld IPAdres en retourneert de positie van de eerste periode. Als het eerste gedeelte van het IP-adres 10.is, geeft de functie de waarde 3 als resultaat.
U kunt vervolgens andere functies gebruiken met de uitvoer van de functie InStr om het gedeelte van het IP-adres vóór de eerste punt uit te pakken, zoals hier:
Left([IPAdres],(InStr(1,[IPAdres],".")-1))
In dit voorbeeld retourneert InStr(1,[IPAdres],".") de positie van de eerste punt. Met de code -1 wordt bepaald hoeveel tekens er vóór de eerste punt staan, in dit geval 2. Via de functie Left wordt vervolgens dat aantal tekens afgetrokken van het linkergedeelte van het veld IPAdres, met de waarde 10 als resultaat.
InStr gebruiken in VBA-code
Opmerking: In de volgende voorbeelden wordt het gebruik van deze functie in een VBA-module (Visual Basic for Applications) toegelicht.
In dit voorbeeld wordt de functie InStr gebruikt om op te vragen op welke positie de ene tekenreeks de eerste keer voorkomt in een andere tekenreeks.
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.