savefiledialog对话框的取消和确定按钮分别返回一个什么值?_根据用户对MsgBox对话框的不同选择,计算机自动决定下一步操作...

92f015b567267a03c5abc52aef82bbbe.png

朋友们好,今日我们讲解VBA代码解决方案的第40讲,根据MsgBox对话框的返回值,决定你的下一步操作。这讲的内容是前两讲内容的延伸,仍是讲MsgBox函数的应用。

我在讲MsgBox函数的时候是作为人机对话函数引入的,在MsgBox函数弹出对话框后,需要输入我们的需求,这时计算机会根据我们的需求来进行下一步的操作。如果我们的需求是不同的,希望计算机能根据我们的需求,也就是说对于消息框的不同选择,计算机进行相应的操作,那么能否实现呢?可以的,完全可以。因为MsgBox函数的返回值是有严格要求的:MsgBox函数的返回值如下表所示,在程序代码中也可以使用常数名称,而不必使用实际数值。

7e4a2376a678a21831169efa094ef7ee.png

如下面的代码所示:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim MyiMsg As Integer

MyiMsg = MsgBox("文件即将关闭,您是否要保存呢?", VbYesNoCancel + VbQuestion)

Select Case MyiMsg

Case 6

Me.Save

Case 7

Me.Saved = True

Case 2

Cancel = True

End Select

End Sub

代码解析:工作簿的BeforeClose过程,在关闭工作簿前使用MsgBox函数显示一个消息框,并根据用户的回应用进行相应的操作。

第3行代码,使用MsgBox函数显示一个具有“是”、“否”和“取消”按钮的消息框,并期待用户的回应,即消息框的返回值赋给变量MyiMsg。MsgBox是一个函数,这意味着它将返回一个值,如果希望获得返回值,可使用和第3行相似的代码,此时如果不使用括号将参数封闭起来,则会提示编译错误,

第4行到第11行代码,Select Case结构语句,根据变量MyiMsg的值判断用户的回应,如果变量MyiMsg的值为6,说明用户选择了“是”按钮,则使用Save方法保存工作簿;如果变量MyiMsg的值为7,说明用户选择了“否”按钮,则将工作簿的Saved属性设置为True,不保存更改而直接关闭工作簿。如果变量MyiMsg的值为2,说明用户选择了“取消”按钮,是将BeforeClose过程的Cancel 参数设置为True,取消关闭工作簿操作。

看下面的代码窗口:

16be5090facbd0870244f07d109a6f80.png

运行后的窗口:

8beea7505d4f085649d572559fd60b33.png

上面的例子中对于返回值就赋给了变量MyiMsg,通过这个变量,计算机就可以识别我们的需求了。

今日内容回向:

1 MSGBOX的返回值有哪些?都是什么含义?

2 Select Case结构语句是否清楚呢?

这一系列文章是根据我多年的工作经验编写的,也是一直在利用的工具,非常方便好用。现在分享出来,希望能对同样在职场打拼的朋友有些许的帮助,使你的工作更加高效、流畅。朋友们有问题请随时提出来,我们一起探讨学习。对数据分析有需要的公司、组织或个人可以直接联系我,及时为你提供专业的定制技术支持。

欢迎大家到我的自媒体平台沟通交流:百家号“VBA与GO语言”、、头条号“VBA专家”、公众号“NZ_9668”、社群“VBA学习交流群”。

工作不是一切。工作是每个人安身立命、成长发展的基础。但你要知道工作是永远也做不完的,时间会抹去很多问题。多关注自己、家人和朋友,这些才是我们生活中更为重要的东西。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值