Vba: используйте если и для проверки нескольких условий
Вы можете использовать следующий базовый синтаксис в VBA с ЕСЛИ и И, чтобы проверить, выполняются ли несколько условий:
SubIfAnd ()
If Range(" A2 ") = "Warriors" And Range(" B2 ") > 100 Then
Range(" C2 ").Value = " Yes! "
Else
Range(" C2 ").Value = " No. "
End If
End Sub
В этом конкретном примере проверяется, равно ли значение в ячейке A2 «Воинам» и превышает ли значение в ячейке B2 100.
Если оба условия соблюдены, значение «Да!» » возвращается в ячейку C2 .
В противном случае значение «Нет». возвращается в ячейку C2 .
В следующем примере показано, как использовать этот синтаксис на практике.
Пример. Используйте IF AND для проверки нескольких условий в VBA.
Предположим, у нас есть следующие данные в Excel:
Предположим, мы хотим определить, является ли название команды Warriors , а значение очков больше 100, и вернуть результат в ячейку C2 .
Для этого мы можем создать следующий макрос:
SubIfAnd ()
If Range(" A2 ") = "Warriors" And Range(" B2 ") > 100 Then
Range(" C2 ").Value = " Yes! "
Else
Range(" C2 ").Value = " No. "
End If
End Sub
Когда мы запускаем этот макрос, мы получаем следующий вывод:
Макрос корректно возвращает значение «Нет». в ячейке C2 , поскольку эти два условия не были выполнены.
Если мы изменим значение точек в ячейке B2 , а затем снова запустим макрос, он проверит, выполняются ли оба условия для новых значений:
Например, предположим, что мы изменяем значение точки на 104 и снова запускаем макрос:
Макрос корректно возвращает значение «Да!» » в ячейке C2 , поскольку оба условия соблюдены.
Если вместо этого вы хотите отобразить результаты в окне сообщения, вы можете использовать следующий синтаксис:
SubIfAnd ()
If Range(" A2 ") = "Warriors" And Range(" B2 ") > 100 Then
MsgBox “ Yes! ”
Else
MsgBox “ No. ”
End If
End Sub
Когда мы запускаем этот макрос, мы получаем следующий вывод:
В окне сообщения возвращается «Да!» » так как название команды — Warriors и количество очков больше 100.
Примечание . В этом примере мы использовали оператор And в нашем макросе только один раз, чтобы проверить, выполняются ли два условия, но вы можете использовать столько операторов And , сколько хотите, чтобы проверить, выполняются ли более двух условий.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:
VBA: как использовать ВПР
VBA: как подсчитать вхождение символов в строку
VBA: как проверить, содержит ли строка другую строку