Повертає значення типу 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 | Положення, у якому знайдено збіг |
| рядок початку2 > | 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.