重点内容
适用版本
桌面版通用(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 编辑器,,贴入代码
- 回到工作表放一个命令按钮,绑定
Empty_Sheet - 点击按钮,选择 Yes,工作表内容会被清空
点击按钮后弹出的 MsgBox,标题栏显示 Empty Sheet,提示文字下方是 Yes/No 两个按钮和问号图示
小技巧 💡
vbYesNo、vbQuestion 这些是 VBA 内建常量,也可以用对应的数字代替(比如 4 和 32),但用常量名字可读性更高。在 VBA 编辑器里选中这些关键字按 F1 可以查看官方文档里其他可用的按钮/图示组合。
学完你会
常见错误
- 忘记给 MsgBox 加括号,直接写
answer = MsgBox "文字", vbYesNo会报语法错误——函数写法必须带括号 - 判断条件写成
If answer = "Yes"(字符串),实际上应该用内建常量vbYes(数字),字符串比较不会匹配
Sources
Blog / Website: