Повертає значення типу Variant (Long), яке задає положення першого входження одного рядка всередині іншого.
Синтаксис
InStr ([start, ] string1, string2 [, compare ] )
Синтаксис функції InStr має такі аргументи:
Аргумент |
Опис |
---|---|
start |
Необов’язковий аргумент. Числовий вираз, який задає початкове положення для кожного пошуку. Якщо його не задано, пошук починається з першого символу. Якщо аргумент start містить Null-значення, стається помилка. Аргумент start є обов’язковим, якщо задано аргумент compare. |
string1 |
Обов’язковий аргумент. Рядковий вираз, який потрібно знайти. |
string2 |
Обов’язковий аргумент. Шуканий рядковий вираз. |
compare |
Необов’язковий аргумент. Визначає тип порівняння рядків. Якщо аргумент compare має Null-значення, стається помилка. Якщо аргумент compare не задано, параметр OptionCompare визначає тип порівняння. Укажіть дійсний код мови (LocaleID), щоб використовувати спеціальні мовні правила для порівняння. |
Порада.: У побудовнику виразів є функція IntelliSense, яка дає змогу побачити, які аргументи потрібні для виразу.
Параметри
Параметри аргументу compare:
Константа |
Значення |
Опис |
---|---|---|
vbUseCompareOption |
–1 |
Виконує порівняння за допомогою параметра оператора Option Compare. |
vbBinaryCompare |
0 |
Виконує двійкове порівняння. |
vbTextCompare |
1 |
Виконує текстове порівняння. |
Значення, що повертаються
Умова |
Значення, яке повертає функція InStr |
---|---|
string1 має нульову довжину |
0 |
string1 має Null-значення |
Null-значення |
string2 має нульову довжину |
start |
string2 має Null-значення |
Null-значення |
string2 не знайдено |
0 |
string2 знайдено в string1 |
Положення, у якому знайдено збіг |
start > string2 |
0 |
Примітки
Функція InStrB використовується з даними типу "байт", що містяться в рядку. Функція InStrB повертає не положення символу першого входження одного рядка в іншому, а положення даних типу "байт".
Приклади
Використання функції InStr у виразі Функцію InStr можна використовувати будь-де, де можна використовувати вирази. Наприклад, якщо потрібно знайти положення першої крапки (.) у полі, яке містить IP-адреси (під назвою IPAddress), можна скористатися функцією InStr, як-от:
InStr(1,[IPAddress],".")
Функція InStr аналізує кожне значення в полі IPAddress і повертає положення першої крапки. Отже, якщо перша частина IP-адреси – 10., функція поверне значення 3.
Після цього можна скористатись іншими функціями, які працюють на основі виводу функції InStr, щоб видобути частину IP-адреси, яка передує першій крапці, як-от:
Left([IPAddress],(InStr(1,[IPAddress],".")-1))
У цьому прикладі функція InStr(1,[IPAddress],".") повертає положення першої крапки. Віднімання 1 визначає кількість символів перед першою крапкою (у цьому випадку – 2). Після цього функція Left видобуває стільки символів із лівої частини поля IPAddress і повертає значення 10.
Використання функції InStr у коді VBA
Примітка.: У прикладах нижче показано використання цієї функції в модулі Visual Basic for Applications (VBA).
У цьому прикладі функцію InStr використано, щоб повернути положення першого входження одного рядка в іншому.
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.