Vba: как создать окно сообщения с ответами да/нет
Вы можете использовать следующий синтаксис в VBA, чтобы создать окно сообщения, в котором пользователь может выбрать «Да» или «Нет»:
Sub MsgBoxYesNo()
'ask user if they want to multiply two cells
UserResponse = MsgBox(" Do you want to multiply cells A1 and B1? ", vbYesNo)
'perform action based on user response
If UserResponse = vbYes Then
Range(" C1 ") = Range(" A1 ") * Range(" B1 ")
Else
MsgBox “ No Multiplication was Performed ”
End If
End Sub
Этот конкретный макрос создает окно сообщения, которое спрашивает пользователя, хотят ли они умножить ячейки A1 и B1.
Если пользователь нажимает «Да», обе ячейки умножаются, и результат отображается в ячейке C1.
Если пользователь нажимает «Нет», появляется новое окно сообщения, сообщающее, что умножение не выполнялось.
Обратите внимание, что оператор vb YesNo вставляет кнопки «Да» и «Нет», которые пользователь может нажать.
Следующие примеры показывают, как использовать этот синтаксис на практике.
Пример. Создайте окно сообщения с ответами «да» или «нет».
Предположим, у нас есть следующие два значения в ячейках A1 и B1 нашего листа Excel:
Допустим, мы хотим создать макрос, который отображает пользователю окно сообщения и спрашивает, хотят ли они умножить значения в ячейках A1 и B1.
Для этого мы можем создать следующий макрос:
Sub MsgBoxYesNo()
'ask user if they want to multiply two cells
UserResponse = MsgBox(" Do you want to multiply cells A1 and B1? ", vbYesNo)
'perform action based on user response
If UserResponse = vbYes Then
Range(" C1 ") = Range(" A1 ") * Range(" B1 ")
Else
MsgBox “ No Multiplication was Performed ”
End If
End Sub
Когда мы запускаем этот макрос, появляется следующее окно сообщения:
Если мы нажмем Да , то макрос перемножит значения в ячейках A1 и B2 и отобразит результат в ячейке C1:
Однако, если мы нажмем «Нет» , появится новое окно сообщения:
В окне сообщения сообщается, что умножение не выполнялось, поскольку мы нажали «Нет» в предыдущем окне сообщения.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:
VBA: как добавить новую строку в окно сообщения
VBA: как добавить новые листы
VBA: как заморозить панели