找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 53409|回复: 15

[问题求助] [已解决]VBS如何用ISEMPTY来判断inputbox的返回值?

[复制链接]
发表于 2011-8-15 08:49:28 | 显示全部楼层 |阅读模式
其实我仅是想用ISEMPTY来判断INPUTBOX的返回值是否为空,但是很意外
当我不进行任何输入(当然也没设默认值),返回的却是非空,我想这并非是ISEMPTY的问题吧!!
首先先看2个很简单的脚本吧

  1. dim str
  2. str=inputbox("请进行输入","要求")
  3. if isempty(str) then
  4. msgbox "it's empty"
  5. else
  6. msgbox "it's "&str&"!"
  7. end if
复制代码
当你不进行输入,而直接单击确定的话,它会是非空。这点很想不通
另外点击取消时,《script 56》说返回值为""(可以看看INPUTBOX的介绍)
此时再看看下面这个

  1. dim a
  2. a=""
  3. if isempty(a) then
  4. msgbox "OK"
  5. else
  6. msgbox "no"
  7. end if
复制代码

评分

参与人数 1PB +2 收起 理由
broly + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2011-8-15 09:08:38 | 显示全部楼层

  1. Dim InputStr
  2. InputStr = InputBox("请输入")
  3. If IsEmpty(InputStr) Then
  4.   MsgBox "InputStr没有被定义"
  5.   Else
  6.   If InputStr = vbNullString Then
  7.     MsgBox "InputStr被定义为空值"
  8.     Else
  9.     MsgBox "InputStr值为:" & InputStr
  10.   End If
  11. End If
复制代码
IsEmpty函数是用来判断变量是不是被定义了
如果被定义了返回值为False(哪怕是空值)否则为True

评分

参与人数 2技术 +2 收起 理由
Hello123World + 1 ardent的代码写的规范规范滴,草根王or职业 ...
wc726842270 + 1 多谢

查看全部评分

发表于 2011-8-15 09:26:08 | 显示全部楼层
 楼主| 发表于 2011-8-15 09:28:31 | 显示全部楼层
是么?这个函数的名字和它的功能有些不符啊,让人上火(可能也是我没认真看)呵呵,多谢了
 楼主| 发表于 2011-8-15 09:34:47 | 显示全部楼层
本帖最后由 wc726842270 于 2011-8-15 10:26 编辑

看到3L的博客却实是这样,好像在脚本之家看见过,但没太关注,看来要改改了
还是用一下TYPENAME吧

  1. dim str
  2. str=inputbox("请进行输入","要求")
  3. if isempty(str) then
  4. msgbox typename(str)
  5. else
  6. msgbox typename(str)
  7. end if
复制代码
看来只要按回车(确定)返回值就是STRING了,取消则是EMPTY(感觉好像又回到起点了,呵呵)
发表于 2011-8-15 10:58:12 | 显示全部楼层
其实是楼主看的太粗心了,帮助说的很清楚:

返回 Boolean 值指明变量是否已初始化
IsEmpty(expression)
expression 参数可以是任意表达式。然而,由于 IsEmpty 用于判断一个变量是否已初始化,故 expression 参数经常是一个变量名。
发表于 2011-8-15 11:04:08 | 显示全部楼层
而且empty除了 空的;还有 无意义的;的意思。

建议楼主多看国产电视剧——例如:《家的n次方》有个bl中文名叫苏泉,英文名叫spring,很多人误以为是春天的意思(包括本人),其实spring还有泉水的意思……
你懂的。
 楼主| 发表于 2011-8-15 11:08:14 | 显示全部楼层
呵呵,其实简单点来说是我英文太次了
现在看来正如我签名中所说啊
发表于 2011-8-15 11:13:05 | 显示全部楼层
呵呵,我也在用有道词典。
发表于 2011-8-15 12:59:07 | 显示全部楼层
看到3L的博客却实是这样,好像在脚本之家看见过,但没太关注,看来要改改了
还是用一下TYPENAME吧看来只要 ...
wc726842270 发表于 2011-8-15 09:34

http://www.jb51.net/article/26809.htm

看清楚出处。
发表于 2012-1-18 21:17:21 | 显示全部楼层
微软的手册其实有很多小问题,包括在线的英文版都有楼主说的这个问题~
很多时候,类型查询函数和类型判断函数非常有用~
发表于 2012-1-19 00:03:04 | 显示全部楼层
微软的手册其实有很多小问题,包括在线的英文版都有楼主说的这个问题~
很多时候,类型查询函数和类型判断 ...
applba 发表于 2012-1-18 21:17

除了这个还有什么?
发表于 2012-1-19 10:11:03 | 显示全部楼层
回复 12# Demon

再比如,里面讲到for EACH……NEXT循环语法的时候,next后面是不能跟循环变量的。
而手册中,确给出来了!
发表于 2012-1-19 10:39:38 | 显示全部楼层
回复  Demon

再比如,里面讲到for EACH……NEXT循环语法的时候,next后面是不能跟循环变量的。
而手册 ...
applba 发表于 2012-1-19 10:11

你看的是VB的文档吧。

http://msdn.microsoft.com/en-us/ ... e%28v=vs.85%29.aspx
发表于 2012-1-19 14:18:09 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 03:53 , Processed in 0.024648 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表