MICROSOFT

EP01. “MsgBox Function MsgBox 函数(带返回值的消息框)”

首页 Microsoft 工具 Excel · VBA · MsgBox · EP01
约 5 分钟· #EP01#Excel#MsgBox
🔒 登录后可标记已读
  • 之前用的 MsgBox "文字" 只是单纯弹一个提示框,没办法知道用户点了哪个按钮
  • 这篇教你用"函数写法"的 MsgBox——加上括号、用变量接收结果
  • 就能做出 Yes/No 选择框,根据用户的选择执行不同操作
  • 前置知识:知道怎么声明变量和写 If 判断
  • 学完能做出"确定要清空吗?"这类确认对话框

重点内容


适用版本

桌面版通用(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 两个按钮和问号图示]


小技巧 💡

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


学完你会

  • ✅ 会用函数写法的 MsgBox 接收用户点击的按钮结果
  • ✅ 会用 vbYesNo + vbQuestion 做出 Yes/No 确认框
  • ✅ 会用 If answer = vbYes 判断用户的选择并执行对应操作

常见错误

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

Sources

Blog / Website:

  1. MsgBox Function