标题: [问题求助] [已解决]VBS脚本select case true判断时,怎么处理空值? [打印本页]
作者: 踏沙行 时间: 2021-2-14 16:15 标题: [已解决]VBS脚本select case true判断时,怎么处理空值?
- a=InputBox ("请输入内容")
- Select Case True
- Case a>0 and a<10
- MsgBox "你输入的是0-9"
- Case a>=10 and a<20
- MsgBox "你输入的是10-20"
- Case a=""
- MsgBox "你没有输入"
- Case else
- MsgBox "输入超出范围"
- End Select
复制代码
当弹出输入框时,输入任何值都可以正常判断
但如果不输入,直接按回车和ESC键,会提示出错。出错语句指向"Selece Case True"一句
作者: flashercs 时间: 2021-2-14 18:23
本帖最后由 flashercs 于 2021-2-14 18:41 编辑
- a=InputBox ("请输入内容")
- WSH.Echo TypeName(a) & " : """ & a & """"
- Select Case True
- Case a=""
- MsgBox "你没有输入"
- Case Not ISNumeric(a)
- MsgBox "你输入的非数字"
- Case a>0 and a<10
- MsgBox "你输入的是0-9"
- Case a>=10 and a<20
- MsgBox "你输入的是10-20"
- Case else
- MsgBox "输入超出范围"
- End Select
复制代码
作者: 踏沙行 时间: 2021-2-15 09:59
回复 2# flashercs
谢谢,有点疑惑的是:
为什么case a="" 要放在第一句才可以,而放在后面却不行呢?
作者: flashercs 时间: 2021-2-15 10:20
回复 3# 踏沙行
InputBox返回的数据类型是Empty 或 String,当是String类型时,string与number类型进行比较,会先把string变成number后再比较,但是转换时空字符串""或无法转换为数值的字符串就会throw exception。因此a>0不能放前面。
作者: 踏沙行 时间: 2021-2-15 14:41
回复 4# flashercs
非常感谢
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |