Prosta funkcja Instr | Pozycja początkowa | Zero | Instr i If | Wyszukiwanie bez rozróżniania wielkości liter
Posługiwać się Instr w Excel VBA znaleźć pozycję podciągu w ciągu. Funkcja Instr jest dość wszechstronna.
Umieść przycisk polecenia w arkuszu i dodaj poniższe wiersze kodu. Aby wykonać linie kodu, kliknij przycisk polecenia na arkuszu.
Prosta funkcja Instr
Domyślnie funkcja Instr rozpoczyna wyszukiwanie na początku ciągu (pozycja 1).
Kod:
Stan przyciemnienia As String
stan = „Wirginia”
MsgBox InStr(stan, "gin")
Wynik:
Uwaga: ciąg „gin” znaleziony na pozycji 4.
Pozycji startowej
Druga funkcja Instr poniżej rozpoczyna wyszukiwanie od pozycji 7.
Kod:
Stan przyciemnienia As String
stan = „Karolina Południowa”
MsgBox InStr(stan, "o")
MsgBox InStr(7, stan, "o")
Wynik:
Objaśnienie: pierwsza funkcja Instr znajduje ciąg „o” na pozycji 2. Druga funkcja Instr rozpoczyna wyszukiwanie od pozycji 7 i znajduje ciąg „o” na pozycji 10.
Zero
Funkcja Instr zwraca 0, jeśli ciąg nie zostanie znaleziony (ważne, jak zobaczymy dalej).
Kod:
Stan przyciemnienia As String
stan = "Floryda"
MsgBox InStr(stan, "nas")
Wynik:
Wniosek: nie znaleziono ciągu „us”.
Instr i If
Stwórzmy prosty program VBA, który wykorzystuje Funkcja instr.
Kod:
Stan dim As String, podciąg As String
stan = Zakres("A2").Wartość
substring = Zakres("B2").Value
Jeśli InStr(stan, podciąg) > 0 Wtedy
Zakres("C2").Value = "Znaleziono"
W przeciwnym razie
Range("C2").Value = "Nie znaleziono"
Zakończ, jeśli
Wynik po kliknięciu przycisku polecenia na arkuszu:
Objaśnienie: ciąg „outh” znaleziony na pozycji 2. Funkcja Instr zwraca 2. W rezultacie Excel VBA umieszcza ciąg „Found” w komórce C2.
Wyszukiwanie bez rozróżniania wielkości liter
Domyślnie funkcja Instr wykonuje wyszukiwanie z uwzględnieniem wielkości liter. Wprowadź ciąg „dakota” do komórki B2 i kliknij przycisk polecenia na arkuszu.
Objaśnienie: nie znaleziono ciągu „dakota” (pierwsza litera nie jest wielka). Funkcja Instr zwraca 0. W rezultacie Excel VBA umieszcza ciąg „Nie znaleziono” w komórce C2.
Aby przeprowadzić wyszukiwanie bez rozróżniania wielkości liter, zaktualizuj kod w następujący sposób:
Stan dim As String, podciąg As String
stan = Zakres("A2").Wartość
substring = Zakres("B2").Value
Jeśli InStr(1, stan, podciąg, vbTextCompare) > 0 Wtedy
Zakres("C2").Value = "Znaleziono"
W przeciwnym razie
Range("C2").Value = "Nie znaleziono"
Zakończ, jeśli
Wynik po kliknięciu przycisku polecenia na arkuszu:
Wyjaśnienie: pokazana powyżej funkcja Instr ma 4 argumenty. Aby przeprowadzić wyszukiwanie bez rozróżniania wielkości liter, zawsze określaj pozycję początkową (pierwszy argument) i używaj vbTextCompare (czwarty argument).