Zwraca wartość typu wariant (długa), określającą pozycję pierwszego wystąpienia jednego ciągu w innym ciągu.
Składnia
InStr([start, ] ciąg1, ciąg2 [, porównaj ] )
W składni funkcji InStr występują następujące argumenty:
| Argument | Opis |
|---|---|
| rozpoczynanie | Argument opcjonalny. Wyrażenie liczbowe ustawiające pozycję początkową każdego wyszukiwania. Jeśli ten argument zostanie pominięty, wyszukiwanie rozpocznie się od pozycji pierwszego znaku. Jeśli parametr start zawiera wartość Null, występuje błąd. Argument start jest wymagany, jeśli jest określona opcja porównywania . |
| ciąg 1 | Argument wymagany. Przeszukiwane wyrażenie ciągu. |
| ciąg 2 | Argument wymagany. Szukane wyrażenie ciągu. |
| porównaj | Argument opcjonalny. Określa typ porównania ciągów. Jeśli wynikiem porównania jest wartość null, wystąpi błąd. Jeśli argument porównanie zostanie pominięty, typ porównania zostanie określony przez ustawienie OptionCompare . Określ prawidłowy identyfikator LCID (identyfikator_ustawień regionalnych), aby użyć reguł specyficznych dla ustawień regionalnych w porównaniu. |
Porada
Konstruktor wyrażeń ma funkcję IntelliSense, dzięki której możesz zobaczyć, jakich argumentów wymaga wyrażenie.
Ustawienia
Ustawienia argumentu porównania są następujące:
| Stała | Wartość | Opis |
|---|---|---|
| vbUseCompareOption | -1 | Wykonuje porównanie przy użyciu ustawienia instrukcji Option Compare . |
| vbBinaryCompare | 0 | Wykonuje porównanie binarne. |
| vbTextCompare | 1 | Wykonuje porównanie tekstu. |
Wartości zwracane
| If | Funkcja InStr zwraca |
|---|---|
| ciąg1 ma zerową długość | 0 |
| ciąg1 is null | Null |
| ciąg2 ma zerową długość | Ekran startowy |
| ciąg2 is Null | Null |
| Nie można odnaleźć ciągu2 | 0 |
| ciąg2 znajduje się w ciągu ciąg1 | Pozycja, na której znaleziono dopasowanie |
| start > string2 | 0 |
Uwagi
Funkcja InStrB jest używana z danymi bajtowymi zawartymi w ciągu. Zamiast zwracać pozycję znaku pierwszego wystąpienia jednego ciągu w innym ciągu, funkcja InStrB zwraca pozycję bajtu.
Przykłady
Używanie funkcji InStr w wyrażeniuPolecenia InStr można używać wszędzie tam, gdzie są używane wyrażenia. Jeśli na przykład chcesz znaleźć pozycję pierwszej kropki (.) w polu zawierającym adresy IP (o nazwie IPAddress), możesz to zrobić za pomocą instrukcji InStr :
InStr(1,[IPAddress],".")
Funkcja InStr sprawdza każdą wartość w polu IPAddress i zwraca pozycję pierwszej kropki. W związku z tym, jeśli pierwsza część adresu IP to 10., funkcja zwraca wartość 3.
Następnie można użyć innych funkcji, działających na danych wyjściowych funkcji InStr , aby wyodrębnić część adresu IP poprzedzającą pierwszą kropkę, na przykład:
Left([IPAddress],(InStr(1,[IPAddress],".")-1))
W tym przykładzie: InStr(1,[IPAddress],".") Zwraca pozycję pierwszego okresu. Odjęcie 1 określa, ile znaków poprzedza pierwsza kropka (w tym przypadku 2). Następnie funkcja Left wyodrębnia tę liczbę znaków z lewej części pola IPAddress i zwraca wartość 10.
Używanie formatu InStr w kodzie języka VBA
Uwaga
Poniższe przykłady przedstawiają sposób użycia tej funkcji w module języka Visual Basic for Applications (VBA).
W tym przykładzie zastosowano funkcję InStr w celu zwrócenia pozycji pierwszego wystąpienia jednego ciągu w innym ciągu.
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.