VBA MsgBox是/否|如何创建是/否响应?

Excel VBA MsgBox(是/否)

VBA,使用消息框我们可以创建一个 是否msgbox 用于记录基于单击“是”或“否”的用户输入,使“是”否消息框的语法如下所示:变量= MsgBox(“文本”,vbQuestion + vbYesNo + vbDefaultButton2,“消息框标题”)其中变量必须声明为整数。

通常在VBA编码中,我们需要从用户那里收集输入值以执行某些任务,而其中一项任务是从用户那里收集“是”或“否”响应。通过使用VBA MsgBox是是,没有方法,我们可以编写代码以进一步在代码中进行操作。

在某些情况下,我们可能需要在用户面前显示“是”或“否”选项,以给出他们的响应,并且基于该响应,我们实际上可以运行VBA代码。

例如,查看下面的VBA中的MsgBox图像。

如果用户说“是”,我们可以编写代码来执行特定任务;如果用户说“否”,我们可以编写代码来执行另一组任务。

如何使用MsgBox是/否响应?

您可以在此处下载此VBA消息框是或否Excel模板– VBA消息框是或否Excel模板

示例1 –根据响应进行复制和粘贴

例如,看下面的代码。

代码:

 子MessageBox_Yes_NO_Example1()昏暗的答案是作为字符串暗淡的答案不是作为字符串AnswerYes = MsgBox(“是否要复制?”,vbQuestion + vbYesNo,“用户回复”)如果AnswerYes = vbYes,则Range(“ A1:A2”)。复制范围(“ C1”)其他范围(“ A1:A2”)。复制范围(“ E1”)如果结束则结束 

解释:

上面已经将变量声明为String,即

 昏暗的答案是字符串 

在下一行中,我们通过询问“您要复制吗?”的消息框来分配值。

AnswerYes = MsgBox(“您是否要复制?”,vbQuestion + vbYesNo,“用户回复”)

现在,IF语句评估通过消息框给出的响应。如果消息框的结果是 然后它将范围A1复制到A2并粘贴到单元格C1中。

  如果AnswerYes = vbYes,则Range(“ A1:A2”)。Copy Range(“ C1”)

如果消息框给出的响应为“否”,则它将范围A1复制到A2并粘贴到单元格E1中。

 其他范围(“ A1:A2”)。复制范围(“ E1”)如果结束 

好的,我现在在单元格A1和A2中输入了几个值。

现在,我将使用F5键或通过运行选项来运行代码,一个消息框将出现在我面前,并要求我回答。

如果单击“是”,它将把范围A1复制到A2并粘贴到C1单元格中。现在,我将单击“是”并查看结果。

因此,如果响应为“是”,则它已执行分配的任务。

现在再次运行代码。

这次,我将选择“否”,然后看看会发生什么。

是的,它执行了代码中分配的任务,即

 其他范围(“ A1:A2”)。复制范围(“ E1”)

Example#2 –根据响应隐藏和取消隐藏工作表

如果响应为是,则下面的代码将隐藏除活动工作表以外的所有工作表。

代码:

 Sub HideAll()昏暗答案作为字符串昏暗Ws作为工作表答案= MsgBox(“您是否希望隐藏全部?”,vbQuestion + vbYesNo,“隐藏”)如果答案= vbYes,则对于ActiveWorkbook.Worksheets中的每个Ws如果Ws.Name ActiveSheet.Name然后Ws.Visible = xlSheetVeryHidden下一个Ws ElseIf答案= vbNo然后MsgBox“您已选择不隐藏工作表”,vbInformation,“否隐藏”如果结束则结束 

如果消息框中的响应为“是”,则上面的代码将隐藏除我们当前所在的工作表以外的所有工作表。

如果消息框的响应为“否”,则会显示消息框,提示: “您已选择不隐藏工作表”。

同样,如果响应为“是”,则下面的代码将取消隐藏工作表。

代码:

 Sub UnHideAll()昏暗答案作为字符串昏暗Ws作为工作表答案= MsgBox(“您是否希望取消隐藏全部吗?”,vbQuestion + vbYesNo,“隐藏”)如果答案= vbYes,则对于ActiveWorkbook.Worksheets Ws.Visible = xlSheetVeryHidden下一个Ws ElseIf答案= vbNo然后MsgBox“您已选择不取消隐藏工作表”,vbInformation,“不隐藏”如果结束则结束 

它的工作原理与隐藏工作表代码完全相同,如果是,它将取消隐藏,如果没有,则将取消隐藏。