分享

Excel VBA工作薄 6.3 多条件的对话窗体 让代码通用性更高

 Excel和VBA 2021-03-31

前景提要(

昨天我们学习了通过msgbox实现一个简单的对话窗体的功能,让使用者在使用脚本的过程中,能够根据自己的实际需要来进行操作,避免出现脚本被写死的情况,影响了脚本的适用范围,这样的情况其实在我们的日常工作中是经常出现的,我们在写脚本/代码的过程中,都需要从使用者的角度出发,提升代码的通用性,灵活性,上节我们留下了一个悬念,如果我们要运行的是四则运算,而不仅仅是加法和减法这两种,那么要如何实现呢?

场景模拟

假设我们现在要做一个简单的计算,方法不确定

我们要执行的运算是四则运算,上节我们仅仅是通过msgbox来实现了简单的加法和减法,而四则运算一下子又增加了2个选项,我们知道msgbox最多能够提供2~3个选项卡,那么这样的情况下,还可以用类似msgbox这样的对话框来执行交互/对话啊?自然你可以,来,看代码

代码区

Sub jisuan()Dim result$Cells(7, 4) = ""Cells(7, "g") = ""result = Application.InputBox("请选择要要进行的运算" & Chr(10) & "1.加分" & Chr(10) & "2.减法" & Chr(10) & "3.乘法" & Chr(10) & "4.除法", "运算方法的选择", , , , , , 1)If result = 1 Then Cells(7, 4) = "+" Cells(7, "g") = Cells(7, 3) + Cells(7, 5) ElseIf result = 2 Then Cells(7, 4) = "-" Cells(7, "g") = Cells(7, 3) - Cells(7, 5) ElseIf result = 3 Then Cells(7, 4) = "*" Cells(7, "g") = Cells(7, 3) * Cells(7, 5) ElseIf result = 4 Then Cells(7, 4) = "/" Cells(7, "g") = Cells(7, 3) / Cells(7, 5) Else Cells(7, 4) = "" Cells(7, "g") = "" Exit SubEnd IfEnd Sub

来看看效果,相对于之前的代码,今天更改了一个不足,在按下按钮的时候,将运算符号和运算结果的这两个单元格内容清空,这样体验感会更好

我们做下加法

试着来下乘法,输入3,看看

结果也是正确的

代码分析

result = Application.InputBox("请选择要要进行的运算" & Chr(10) & "1.加分" & Chr(10) & "2.减法" & Chr(10) & "3.乘法" & Chr(10) & "4.除法", "运算方法的选择", , , , , , 1)

今天的关键代码就是这一句话

在之前学习的时候,我们就知道msgbox的选择按钮是有限制的,那么我们今天的多选项明显已经超过了msgbox的容量了,所以我们采用之前学过的另外一种方法InputBox来实现这种简单的交互/对话功能,这里的选项不受限制,如果你需要你可以继续写下去

这里插入一个新的玩法,就是换行符的写法Chr(10),代表的就是换行,如果没有这个换行符的,所有的字段都合并在一起,展示效果不好,有了换行符之后

有了换行符之后,分段展示,效果更佳

相对于msgbox弹窗的对话框,inputbox所展示的对话框适用范围更加广一些,也更加的灵活多变,同时可以限制对方输入内容,比方说我这里就是只需要使用者输入1,2,4,3这几个数字,如果对方输入了中文,或者英文,看看结果是什么

这也是inputbox的一个优势之一。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多