Vba: как проверить, содержит ли строка другую строку
Вы можете использовать функцию Instr() в VBA, чтобы проверить, содержит ли строка другую строку.
Эта функция использует следующий базовый синтаксис:
Instr(начало, строка1, строка2,…)
Золото:
- start : Начальная позиция поиска.
- string1 : строка для поиска.
- string2 : строка, которую вы пытаетесь найти.
В следующем примере показано, как использовать эту функцию на практике.
Пример. Используйте VBA, чтобы проверить, содержит ли строка другую строку.
Допустим, у нас есть следующий набор данных в Excel, содержащий информацию о различных баскетбольных командах:
Теперь предположим, что мы хотим проверить, содержит ли каждая строка в столбце «Команда» где-нибудь «avs».
Мы можем использовать следующий синтаксис в VBA, чтобы проверить, содержит ли каждая строка в столбце Team «avs», и, если да, вернуть всю строку в столбцах D и E:
Sub StringContains() Dim i As Integer , i_num As Integer For i = 2 To 9 If InStr(1, LCase(Range(" A " & i)), " avs ") <> 0 Then i_num = i_num + 1 Range(" D " & i_num & " :E " & i_num) = Range(" A " & i & " :B " & i).Value End If Next i End Sub
Когда мы запускаем этот макрос, мы получаем следующий вывод:
Обратите внимание, что каждая строка, содержащая строку «avs» где-то в столбце «Команда», возвращается в столбцах D и E.
В этом примере только две команды (Mavs и Cavs) содержали слово «avs» в столбце «Команда».
Чтобы найти другую строку, просто замените «avs» в приведенном выше коде строкой по вашему выбору.
Примечание № 1. В коде мы использовали For i = от 2 до 9, поскольку ячейки от A2 до A9 содержали интересующие нас строки. Не стесняйтесь изменять этот диапазон в зависимости от диапазона ячеек, который вы ищете.
Примечание №2 . Полную документацию по функции Instr() в VBA можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи с помощью VBA:
VBA: как подсчитать вхождение символов в строку
VBA: как подсчитать количество строк в диапазоне
VBA: Как рассчитать среднее значение диапазона