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: Как рассчитать среднее значение диапазона

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *