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ównanie ] )
W składni funkcji InStr występują następujące argumenty:
Argument |
Opis |
---|---|
rozpoczynanie |
Argument opcjonalny. Wyrażenie liczbowe, które ustawia pozycję początkową dla każdego wyszukiwania. Jeśli zostanie pominięte, wyszukiwanie rozpocznie się od pierwszego znaku. Jeśli argument start zawiera wartość Null, występuje błąd. Argument początek jest wymagany, jeśli określono porównanie . |
ciąg1 |
Argument wymagany. Przeszukiwane wyrażenie ciągu. |
ciąg2 |
Argument wymagany. Szukane wyrażenie ciągu. |
Porównać |
Argument opcjonalny. Określa typ porównanie ciągów. Jeśli argument porównaj ma wartość Null, występuje błąd. Jeśli argument porównanie zostanie pominięty, ustawienie Porównywanieopcji określa typ porównania. Określ prawidłowy identyfikator LCID (LocaleID), aby w porównaniu używać reguł specyficznych dla ustawień regionalnych. |
Porada: Konstruktor wyrażeń ma technologię IntelliSense, dzięki czemu możesz zobaczyć, jakich argumentów wymaga wyrażenie.
Ustawienia
Ustawienia argumentów porównania to:
Stała |
Value (Wartość) |
Opis |
---|---|---|
vbUseCompareOption |
-1 |
Wykonuje porównanie za pomocą ustawienia instrukcji Porównaj opcje . |
vbBinaryCompare |
0 |
Wykonuje porównanie binarne. |
vbTextCompare |
1 |
Wykonuje porównanie tekstowe. |
Zwracane wartości
If |
Funkcja InStr zwraca wartość |
---|---|
ciąg1 ma zerową długość |
0 |
ciąg1 to Null |
Null |
ciąg2 ma zerową długość |
rozpoczynanie |
ciąg2 to Null |
Null |
ciąg2 nie został odnaleziony |
0 |
ciąg2 znajduje się w ciągu1 |
Położenie, w którym znajduje się dopasowanie |
ciąg 2 > |
0 |
Spostrzeżenia
Funkcja InStrB jest używana z danymi bajtowymi zawartymi w ciągu. Zamiast zwracać pozycję znaku pierwszego wystąpienia jednego ciągu w drugim, funkcja InStrB zwraca pozycję bajtu.
Przykłady
Używanie funkcji InStr w wyrażeniu InStr można używać wszędzie tam, gdzie można używać wyrażeń. Jeśli na przykład chcesz znaleźć pozycję pierwszego okresu (.) w polu zawierającym adresy IP (o nazwie IPAddress) można użyć instr , aby go znaleźć, w następujący sposób:
InStr(1;[adres IPAddress]".")
Funkcja InStr sprawdza każdą wartość w polu IPAddress i zwraca pozycję pierwszego okresu. Dlatego, jeśli pierwsza część adresu IP wynosi 10.funkcja zwraca wartość 3.
Następnie można użyć innych funkcji działających na podstawie danych wyjściowych funkcji InStr , aby wyodrębnić część adresu IP poprzedzającą pierwszy okres, na przykład:
Left([IPAddress];(InStr(1,[IPAddress]".") -1))
W tym przykładzie InStr(1;[adres IPAddress]".") zwraca pozycję pierwszego okresu. Odejmowanie 1 określa liczbę znaków poprzedzających pierwszy okres, w tym przypadku 2. Następnie funkcja Lewy wyodrębnia tę liczbę znaków z lewej części pola IPAddress, zwracając wartość 10.
Używanie kodu VBA inStr w języku 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 użyto funkcji InStr w celu zwrócenia pozycji pierwszego wystąpienia jednego ciągu w innym.
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.