返回列表 发帖

[问题求助] [已解决]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   COPY
当弹出输入框时,输入任何值都可以正常判断
但如果不输入,直接按回车和ESC键,会提示出错。出错语句指向"Selece Case True"一句

本帖最后由 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   COPY
微信:flashercs
QQ:49908356

TOP

回复 2# flashercs
谢谢,有点疑惑的是:
为什么case a="" 要放在第一句才可以,而放在后面却不行呢?

TOP

回复 3# 踏沙行


    InputBox返回的数据类型是Empty 或 String,当是String类型时,string与number类型进行比较,会先把string变成number后再比较,但是转换时空字符串""或无法转换为数值的字符串就会throw exception。因此a>0不能放前面。
微信:flashercs
QQ:49908356

TOP

回复 4# flashercs

非常感谢

TOP

返回列表