EP01. “MsgBox Function 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 写成函数形式(外面包一层括号),才能把结果赋值给变量;三个参数依序是:- 提示文字:"Are you sure you want to empty the sheet?"
- 按钮 + 图示样式:
vbYesNo(显示 Yes/No 两个按钮)+vbQuestion(显示问号图示) - 标题栏文字:"Empty Sheet"
If answer = vbYes Then:判断用户是否点了 Yes,是的话执行Cells.ClearContents(清空整张工作表内容);点 No 则 Else 分支什么都不做
代码怎么运行
Alt + F11打开 VBA 编辑器,Insert → Module,贴入代码- 回到工作表放一个命令按钮,绑定
Empty_Sheet - 点击按钮,选择 Yes,工作表内容会被清空
[截图:点击按钮后弹出的 MsgBox,标题栏显示 Empty Sheet,提示文字下方是 Yes/No 两个按钮和问号图示]
小技巧 💡
vbYesNo、vbQuestion 这些是 VBA 内建常量,也可以用对应的数字代替(比如 4 和 32),但用常量名字可读性更高。在 VBA 编辑器里选中这些关键字按 F1 可以查看官方文档里其他可用的按钮/图示组合。
学完你会
- ✅ 会用函数写法的 MsgBox 接收用户点击的按钮结果
- ✅ 会用
vbYesNo + vbQuestion做出 Yes/No 确认框 - ✅ 会用
If answer = vbYes判断用户的选择并执行对应操作
常见错误
- 忘记给 MsgBox 加括号,直接写
answer = MsgBox "文字", vbYesNo会报语法错误——函数写法必须带括号 - 判断条件写成
If answer = "Yes"(字符串),实际上应该用内建常量vbYes(数字),字符串比较不会匹配
Sources
Blog / Website: