Gibt einen Wert des Typs Variant (Long) zurück, der die Position des ersten Auftretens einer Zeichenfolge innerhalb einer anderen Zeichenfolge angibt.
Syntax
InStr ([Anfang, ] Zeichenfolge1, Zeichenfolge2 [, Vergleich ] )
Die Syntax der InStr-Funktion weist die folgenden Argumente auf:
Argument |
Beschreibung |
---|---|
Anfang |
Optional. Numerischer Ausdruck, der die Anfangsposition für jede Suche festlegt. Fehlt dieses Argument, beginnt die Suche an der ersten Zeichenposition. Enthält Anfang den Nullwert, tritt ein Fehler auf. Das Argument Anfang ist erforderlich, wenn Vergleich angegeben ist. |
Zeichenfolge1 |
Erforderlich. Zeichenfolgenausdruck, der durchsucht wird. |
Zeichenfolge2 |
Erforderlich. Zeichenfolgenausdruck, nach dem gesucht wird. |
Vergleich |
Optional. Gibt den Typ des Zeichenfolgenvergleichs an. Enthält Vergleich den Nullwert, tritt ein Fehler auf. Ist Vergleich nicht angegeben, bestimmt die Einstellung von OptionCompare den Typ des Vergleichs. Geben Sie eine gültige LCID (LocaleID) an, damit gebietsschemaspezifische Regeln im Vergleich verwendet werden. |
Tipp: Der Ausdrucks-Generator verfügt über IntelliSense, sodass Sie sehen können, welche Argumente Ihr Ausdruck benötigt.
Einstellungen
Die Einstellungen für das Argument Zeichenvergleich lauten:
Konstante |
Wert |
Beschreibung |
---|---|---|
vbUseCompareOption |
-1 |
Verwendet für einen Vergleich die Einstellung der Option Compare-Anweisung. |
vbBinaryCompare |
0 |
Führt einen binären Vergleich durch. |
vbTextCompare |
1 |
Führt einen Textvergleich durch. |
Rückgabewerte
Wenn |
InStr-Rückgabe |
---|---|
Zeichenfolge1 hat Länge 0 (null) |
0 |
Zeichenfolge1 ist Nullwert |
Null |
Zeichenfolge2 hat Länge 0 (null) |
Anfang |
Zeichenfolge2 ist Nullwert |
Null |
Zeichenfolge2 nicht gefunden |
0 |
Zeichenfolge2 in Zeichenfolge1 gefunden |
Die Position, an der eine Übereinstimmung gefunden wurde |
Anfang > Zeichenfolge2 |
0 |
Hinweise
Die InStrB-Funktion wird mit Bytedaten verwendet, die in einer Zeichenfolge enthalten sind. Statt die Zeichenposition zurückzugeben, an der eine Zeichenfolge erstmals innerhalb einer anderen auftritt, gibt InStrB die Byteposition zurück.
Beispiele
Verwenden der InStr-Funktion in einem Ausdruck Sie können InStr überall verwenden, wo Ausdrücke zulässig sind. Wenn Sie beispielsweise die Position des ersten Punkts (.) in einem Feld ermitteln möchten, das IP-Adressen enthält (Feldname ist "IPAddress"), können Sie InStr wie folgt zum Suchen verwenden:
InStr(1,[IPAddress],".")
Die InStr-Funktion wertet jeden Wert im Feld "IPAddress" aus und gibt die Position des ersten Punkts zurück. Daher gibt die Funktion, wenn der erste Teil des IP-Adresse gleich 10.ist, den Wert "3" zurück.
Sie können dann weitere Funktionen verwenden, die die Ausgabe der InStr-Funktion verarbeiten, um den Teil der IP-Adresse zu extrahieren, die vor dem ersten Punkt steht. Beispielsweise so:
Left([IPAddress],(InStr(1,[IPAddress],".")-1))
In diesem Beispiel gibt InStr(1,[IPAddress],".") die Position des ersten Punkts zurück. Durch Subtrahieren von 1 wird ermittelt, wie viele Zeichen vor dem ersten Punkt stehen (in diesem Fall 2). Die Left-Funktion extrahiert dann die entsprechende Anzahl Zeichen aus dem linken Teil des Felds "IPAddress", so dass sie den Wert "10" zurückgibt.
Verwenden von InStr in VBA-Code
Hinweis: Die folgenden Beispiele zeigen die Verwendung dieser Funktion in einem VBA-Modul (Visual Basic for Applications).
In diesem Beispiel wird die InStr-Funktion verwendet, um die Position zurückzugeben, an der eine Zeichenfolge erstmals innerhalb einer anderen Zeichenfolge auftritt.
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.