用计算机弹出我们不一样,根据用户对MsgBox对话框不同的选择,计算机自动响应下一步操作...

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

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

32cc8ed14df91ca48db27f074a7367eb.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,取消关闭工作簿操作。

看下面的代码窗口:

4fbfb1cf6281ea0d7f64047aa6641e31.png

运行后的窗口:

695874c2c90fb59237eb29743b1db3fc.png

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

今日内容回向:

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

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

举报/反馈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值