VBA Instr: How to Search for Substrings in Excel VBA
Функция InStr в VBA (Visual Basic for Applications) используется для поиска подстроки в строке и возвращает позицию первого вхождения подстроки в строке.
Синтаксис функции InStr:
InStr([номер_начального_символа], строка1, строка2, [сравнение])
где:
- номер_начального_символа - необязательный параметр, указывающий номер позиции символа в строке1, с которого начинать поиск подстроки в строке2. Если данный параметр не указан, поиск будет начинаться с первого символа строки1.
- строка1 - это строка, в которой будет выполнен поиск вхождения подстроки.
- строка2 - это подстрока, которую нужно найти в строке1.
- сравнение - это необязательный параметр, который указывает тип сравнения строк. Может принимать значения vbBinaryCompare (бинарное сравнение), vbTextCompare (текстовое сравнение), vbDatabaseCompare (сравнение на основе параметров локали).
Рассмотрим примеры использования функции InStr в VBA.
Пример 1:
Допустим, у нас есть строка "Hello world!". И мы хотим найти первое вхождение подстроки "world" в данной строке.
Dim myString as String
myString = "Hello world!"
Dim position as Integer
position = InStr(myString, "world")
MsgBox position
В данном примере мы указали только два параметра - строку, в которой нужно искать вхождение подстроки, и саму подстроку, которую надо найти. Результатом выполнения данного кода будет вывод на экран окна сообщения с числом 7 - это позиция первого вхождения подстроки "world" в строке "Hello world!".
Пример 2:
Теперь допустим, у нас есть две строки: "This is a test string" и "test". Мы хотим найти позицию первого вхождения подстроки "test" в строке "This is a test string", начиная поиск со второго символа.
Dim myString as String
myString = "This is a test string"
Dim position as Integer
position = InStr(2, myString, "test")
MsgBox position
В данном примере мы указали три параметра - номер символа, с которого начинать поиск подстроки, строку, в которой нужно искать вхождение подстроки, и саму подстроку, которую надо найти. Результатом выполнения данного кода будет вывод на экран окна сообщения с числом 11 - это позиция первого вхождения подстроки "test" в строке "This is a test string", начиная со второго символа.
Таким образом, функция InStr в VBA является полезным инструментом при работе со строками, который позволяет находить позицию первого вхождения определенной подстроки в строке.