作者:绿色风
分类:
时间:2022-08-17
浏览:164
楼主 amulee |
Q:如何解决InputBox会出现的类型不匹配? A:如以下代码,当什么都不输入直接点击“确定”或者点击“取消”时会发生“类型不匹配”的情况。
- Sub 错误1()
- Dim i As Integer
- i = InputBox("输入数值", "请输入数值")
- '由于InputBox返回的是String类型的数值,因而出现类型不匹配
- Stop
- End Sub
原因在于InputBox函数返回的是String类型的数值,虽然输入数字的时候VBA会自动进行转换,但是当遇到什么都不输入直接点击“确定”或者点击“取消”时,此时该函数返回空字符,它却无法通过VBA的自动转换转换成数值。可以通过以下几个方案来解决。
方法1:定义变量为String类型
- Sub Test1()
- Dim i As String
- i = InputBox("输入数值", "请输入数值")
- Stop
- End Sub
方法2:若仍然需要使用Integer类型的变量,可以通过VAL函数对InputBox的值进行强制转换。
- Sub Test2()
- Dim i As Integer
- i = Val(InputBox("输入数值", "请输入数值"))
- Stop
- End Sub
Application.InputBox与InputBox类似,不过当点击取消时,它返回的是逻辑值False。请运行下列程序点击取消测试:
- Sub Test3()
- Dim i
- i = Application.InputBox("输入数值", "请输入数值")
- Stop
- End Sub
很多时候,如果需要强制用户输入数值,则可以采取以下程序:
- Sub Test4()
- Dim i
- i = InputBox("输入数值", "请输入数值")
- Do While Len(i) = 0
- MsgBox "您未输入,请重新输入"
- i = InputBox("输入数值", "请输入数值")
- Loop
- End Sub
|
2楼 wise |
学习,这个可没有注意 |
3楼 snowangle007 |
学习了,阿木老师太厉害了! |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一