• Funkcja InStr. Czy w tekście znajduje się znak (ciąg znaków).
Bardzo często mamy tekst, który musimy sprawdzić czy nie zawiera nieprawidłowych znaków, bądź wyrazów. Czasami musimy policzyć ile razy znak, czy wyraz występuje w naszym tekście. Wiedząc, że tekst zawiera szukaną frazę możemy dokonać poprawek w tekście za pomocą wbudowanych funkcji Mid, Left, Right lub Replace.
Składnia funkcji InStr
Funkcja InStr zwraca wartość typu Variant podtyp Long określającą miejsce pierwszego wystąpienia poszukiwanego ciągu znaków string2 w drugim, przeszukiwanym ciągu znaków string1 począwszy od znaku określonego w argumencie start.
InStr([start As Long = 1], [string1 As String], [string2 As String],
[compare As VbCompareMethod = vbBinaryCompare])
Funkcji InStr ma następujące argumenty
:
Argument | Opis |
---|---|
start |
Argument nieobowiązkowy. Wartość domyślna 1. Wyrażenie numeryczne określające początkowy znak od którego zostanie
rozpoczęte przeszukiwanie ciągu. Jeśli argument ten zostanie pominięty (nie należy wtedy wstawiać pojedynczego przecinka
w celu oddzielenia argumenu string1), przeszukiwanie zaczyna się od pierwszego znaku.
Jeśli argument start jest równy Null , wystąpi błąd wykonania nr 94
„Nieprawidłowe użycie Null”Uwaga. Argument start jest obowiązkowy, jeśli określony jest argument compare. |
string1 | Argument obowiązkowy. Wyrażenie znakowe które będzie przeszukiwane. |
string2 | Argument obowiązkowy. Wyrażenie znakowe, które będzie wyszukiwane w ciągu wejściowym string1 |
compare |
Argument nieobowiązkowy. Wyrażenie numeryczne określające typ porównywania ciągów znaków .
Jeśli argument compare jest równy Null, wystąpiwystąpi błąd wykonania nr 94
„Nieprawidłowe użycie Null”.
|
Argument compare może przyjmować wartości:
Stała | Wartość | Opis |
---|---|---|
vbUseCompareOption | -1 | Porównanie ciągów znaków wykonane zostanie zgodnie z ustawieniami instrukcji Option Compare. |
vbBinaryCompare | 0 | Wartość domyślna. Oznacza porównanie binarne, rozróżniane są wielkie i małe litery. |
vbTextCompare | 1 | Porównanie tekstowe. Wielkość liter nie ma znaczenia |
vbDatabaseCompare | 2 | Wartość 2 ma sens tylko przy korzystaniu z bazy danych Microsoft Access i służy do przeprowadzenia porównania na podstawie informacji zawartej w bazie danych |
Uwaga. Powyższe stałe są zdefiniowane przez Visual Basic for Applications i mogą być stosowane w dowolnym miejscu kodu programu zamiast ich rzeczywistych wartości.
Zwracane wartości
Funkcja InStr wyszukuje w przekazanym ciągu znaków string1, począwszy od pozycji określonej w argumencie start, znak (ciąg znaków) string2. Przy powodzeniu zwraca jego pozycję w przeszukiwanym ciągu znaków string1. Jeżeli szukany ciąg znaków string2 nie występuje w przeszukiwanym ciągu zwraca 0. Bardzie szczegółowy opis zwracanych wartości przez funkcję InStr znajduje się poniżej:
Jeżeli | Funkcja InStr zwraca |
---|---|
string1 jest ciągiem zerowej długośći "" | Zwraca 0 |
string1 ma wartość Null | Zgłaszany jest błąd wykonania nr 94 „Nieprawidłowe użycie Null” |
string2 jest ciągiem zerowej długośći "" | Zwraca wartość argumentu start |
string2 ma wartość Null | Zgłaszany jest błąd wykonania nr 94 „Nieprawidłowe użycie Null” |
string2 nie został znaleziony | Zwraca 0 |
string2 został znaleziony | Zwraca pozycję, na której znaleziono pasujący ciąg string2 |
start > Len(string1) | Zwraca 0 |
Uwaga. Funkcja InStrB jest używana do danych bajtowych zawartych w ciągu znaków. Zamiast zwracać pozycję znakową w przeszukiwanym ciągu znaków string1, na której występuje szukany ciąg znaków string2 funkcja InStrB zwraca pozycję bajtu na której znaleziono szukany ciąg.
Słownik użytych terminów.
- • argument
- Stała, zmienna lub wyrażenie przekazywane do procedury.
- • wyrażenie numeryczne
- Każde wyrażenie, które daje w wyniku liczbę. Może być to kombinacja zmiennych, stałych, funkcji i operatorów.
- • Null
- Wartość wskazująca, że dana zmienna nie zawiera żadnych poprawnych danych. Wartość ta jest wynikiem jawnego przypisania wartości Null do danej zmiennej lub wynikiem dowolnej operacji przeprowadzonej pomiędzy wyrażeniami zawierającymi wartość Null.
- • wyrażenie znakowe
-
Dowolne wyrażenie o wartości stanowiącej sekwencję następujących po sobie znaków. Do elementów wyrażenia znakowego
może należeć funkcja zwracająca ciąg znaków, literał znakowy, stała znakowa, zmienna znakowa, ciąg znaków typu Variant
lub funkcja zwracająca ciąg znaków typu Variant (VarType = 8 (
vbString
). - • Porównanie ciągów znaków
- Porównanie dwóch sekwencji znaków. Option Compare określa, czy porównywanie ma przebiegać w trybie binarnym czy tekstowym. W trybie binarnym wielkie litery i małe są różnymi znakami, ale w trybie tekstowym nie są rozróżniane wielkie i małe liter.