前景提要()
昨天我们分享了vba中msgbox的简单的使用方法,在昨天的学习中,我们知道了msgbox的几个不常用的参数,当时我们说在简单的弹窗提示的时候,是不需要这么多复杂的功能的,但是在进行用户对话窗体的过程中,这些功能就比较实用了,但是一个简单的弹窗如何实现用户对话交互功能呢?很简单,换一种写法就可以了。
场景模拟
假设我们现在要做一个简单的加减计算,方法不确定
不一定就是加法,也不一定就是减法,所以在写代码的 过程中,我们就不能够将这个操作写死了,如果写死的话,就非常的不灵活了,不可能要用减法的时候,你去代码中改成减法,结果下次要用加法的时候,你再去改成加法运算吧,这是一个非常low的代码,那么如何提升通用性呢?
很简单,这时候我们设计一个简单的对话窗体,让使用者来根据自己的需要进行选择他想要的方法,既然是简单的窗体,我们就不需要制作窗体了,直接用msgbox来实现,来看代码
代码区
Sub jisuan() Dim result$ result = MsgBox("请选择要进行的运算方法,Y执行加法,N执行减法,退出选择取消", vbYesNoCancel, "运算方式的选择") If result = vbYes Then Cells(7, 4) = "+" Cells(7, "g") = Cells(7, 3) + Cells(7, 5) ElseIf result = vbNo Then Cells(7, 4) = "-" Cells(7, "g") = Cells(7, 3) - Cells(7, 5) Else Cells(7, 4) = "" Cells(7, "g") = "" Exit Sub End If End Sub
来看看效果,假设我们想要做加法运算
点击按钮能,之后出现弹窗,有三种操作可供选择,Y代表加法,N代表减法,如果还没有想好,就选择取消退出程序,来试下加法
再来试下减法
如果还没有想好呢
非常完美,通过msgbox成功实现了和用户之间对话式的交互效果,这样我们的代码的通用性就更加的高了。
代码分析
result = MsgBox("请选择要进行的运算方法,Y执行加法,N执行减法,退出选择取消", vbYesNoCancel, "运算方式的选择")
今天的关键代码之一就是这一句话,
利用之前的msgbox窗体,msgbox其实是由返回值的,我们这里用result来承接msgbox返回的结果,这里新增一个知识点,vbYesNoCancel
他的作用是形成有三个选项的窗体,
Yes(是)No(否)Cancel(取消)
这个方法的选项还有很多种,大家在使用的过程中可以根据使用自己想要的模式
然后当用户做出了选择之后,result就会得到一个返回值,如果选择Yes,返回的结果就是VBYES,如果选择的是NO ,返回的就是VBNO,如果选择了退出就只能退出程序了。
之后就是最简单的加减法的运算了。大家都能够看懂了。
=======================================================
今天主要和大家分享下msgbox的交互对话式的用法,通过这个方法在一些相对灵活的场景就可以提高代码的通用性,让用户的体验效果更加的好,而且也比较的简单,并不难实现,相信大家都还是比较容易接受的。
留一个小悬念,msgbox好像只有最多3个选项,那我如果有4个选项呢?比方说四则运算,4个选项+一个取消按钮,起码要5个,那么要如何实现呢?知识点其实之前已经分享过了,加上今天的知识点的逆用,就可以实现了,大家先思考下咯,明天小编将会奉上最终的答案~~
好了,明晚19:00,准时再见。
================历史相关文章==============================
Excel VBA工作薄 5.19工作薄到期自动删除 工作薄自杀功能
Excel VBA工作薄 5.18 禁用宏功能就能阻止我的保护嘛?NO WAY!