Microsoft Lab
全部软件
Excel消息框(MsgBox)约 4 分钟

MsgBox Function MsgBox 函数(带返回值的消息框)

重点内容


适用版本

桌面版通用(Excel 365 / 2021 / 2019 等)。


完整代码

Sub Empty_Sheet()
    Dim answer As Integer

    answer = MsgBox("Are you sure you want to empty the sheet?", vbYesNo + vbQuestion, "Empty Sheet")

    If answer = vbYes Then
        Cells.ClearContents
    Else
        'do nothing
    End If
End Sub

代码逻辑说明

  • Dim answer As Integer:声明一个整数变量,用来接收用户点击的按钮结果
  • answer = MsgBox(...):MsgBox 写成函数形式(外面包一层括号),才能把结果赋值给变量;三个参数依序是:
    1. 提示文字:"Are you sure you want to empty the sheet?"
    2. 按钮 + 图示样式:vbYesNo(显示 Yes/No 两个按钮)+ vbQuestion(显示问号图示)
    3. 标题栏文字:"Empty Sheet"
  • If answer = vbYes Then:判断用户是否点了 Yes,是的话执行 Cells.ClearContents(清空整张工作表内容);点 No 则 Else 分支什么都不做

代码怎么运行

  1. Alt+F11 打开 VBA 编辑器,Insert›Module,贴入代码
  2. 回到工作表放一个命令按钮,绑定 Empty_Sheet
  3. 点击按钮,选择 Yes,工作表内容会被清空
📷 画面提示

点击按钮后弹出的 MsgBox,标题栏显示 Empty Sheet,提示文字下方是 Yes/No 两个按钮和问号图示


小技巧 💡

vbYesNo、vbQuestion 这些是 VBA 内建常量,也可以用对应的数字代替(比如 4 和 32),但用常量名字可读性更高。在 VBA 编辑器里选中这些关键字按 F1 可以查看官方文档里其他可用的按钮/图示组合。


学完你会

常见错误

  • 忘记给 MsgBox 加括号,直接写 answer = MsgBox "文字", vbYesNo 会报语法错误——函数写法必须带括号
  • 判断条件写成 If answer = "Yes"(字符串),实际上应该用内建常量 vbYes(数字),字符串比较不会匹配

Sources

Blog / Website:

  1. MsgBox Function
只记在你的浏览器里,换设备不会同步。