Vba: простая формула «если ячейка содержит»
Вы можете использовать следующий базовый синтаксис для использования формулы «если ячейка содержит» в VBA:
Sub IfContains()
Dim i As Integer
For i = 2 To 8
If InStr(1, LCase(Range(" A " & i)), " turtle ") <> 0 Then
Result = " Contains Turtle "
Else
Result = “ Does Not Contain Turtle ”
End If
Range(" B " & i) = Result
Next i
End Sub
В этом конкретном примере проверяется, содержит ли каждая ячейка в диапазоне A2:A8 слово «черепаха», а затем присваивается значение «Содержит черепаху» или «Не содержит черепаху» каждой соответствующей ячейке в диапазоне B2:B8 .
Примечание . Метод Instr проверяет, содержит ли строка другую строку, а метод LCase преобразует текст в нижний регистр для выполнения поиска без учета регистра.
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: как использовать «Если ячейка содержит» в VBA
Предположим, у нас есть следующий список ячеек в Excel, каждая из которых содержит разный текст:
Предположим, мы хотим проверить, содержит ли каждая ячейка в диапазоне A2:A8 текст «черепаха», и отобразить результаты в соответствующих ячейках диапазона B2:B8 .
Для этого мы можем создать следующий макрос:
Sub IfContains()
Dim i As Integer
For i = 2 To 8
If InStr(1, LCase(Range(" A " & i)), " turtle ") <> 0 Then
Result = " Contains Turtle "
Else
Result = “ Does Not Contain Turtle ”
End If
Range(" B " & i) = Result
Next i
End Sub
Когда мы запускаем этот макрос, мы получаем следующий вывод:
Столбец B сообщает нам, содержат ли соответствующие ячейки в столбце A слово «черепаха» где-нибудь в тексте.
Примечание . Полную документацию по методу VBA Instr можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:
VBA: как подсчитать вхождение символов в строку
VBA: как проверить, содержит ли строка другую строку