[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] [已解决]VBS脚本select case true判断时,怎么处理空值?

  1. a=InputBox ("请输入内容")
  2. Select Case True
  3.     Case a>0 and a<10
  4.         MsgBox "你输入的是0-9"   
  5.     Case a>=10 and a<20
  6.         MsgBox "你输入的是10-20"   
  7.     Case a=""
  8.         MsgBox "你没有输入"         
  9.     Case else  
  10.         MsgBox "输入超出范围"   
  11. End Select   
复制代码
当弹出输入框时,输入任何值都可以正常判断
但如果不输入,直接按回车和ESC键,会提示出错。出错语句指向"Selece Case True"一句

本帖最后由 flashercs 于 2021-2-14 18:41 编辑
  1. a=InputBox ("请输入内容")
  2. WSH.Echo TypeName(a) & " : """ & a & """"
  3. Select Case True
  4.     Case a=""
  5.         MsgBox "你没有输入"  
  6.     Case Not ISNumeric(a)      
  7.         MsgBox "你输入的非数字"
  8.     Case a>0 and a<10
  9.         MsgBox "你输入的是0-9"   
  10.     Case a>=10 and a<20
  11.         MsgBox "你输入的是10-20"   
  12.     Case else  
  13.         MsgBox "输入超出范围"   
  14. End Select   
复制代码
微信: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

返回列表