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

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

其实我仅是想用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
复制代码
1

评分人数

    • broly: 感谢给帖子标题标注[已解决]字样PB + 2
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

  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

评分人数

一路飘过的鸟~~~

TOP

1

评分人数

TOP

是么?这个函数的名字和它的功能有些不符啊,让人上火(可能也是我没认真看)呵呵,多谢了
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

本帖最后由 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(感觉好像又回到起点了,呵呵)
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

其实是楼主看的太粗心了,帮助说的很清楚:

返回 Boolean 值指明变量是否已初始化
IsEmpty(expression)
expression 参数可以是任意表达式。然而,由于 IsEmpty 用于判断一个变量是否已初始化,故 expression 参数经常是一个变量名。

TOP

而且empty除了 空的;还有 无意义的;的意思。

建议楼主多看国产电视剧——例如:《家的n次方》有个bl中文名叫苏泉,英文名叫spring,很多人误以为是春天的意思(包括本人),其实spring还有泉水的意思……
你懂的。

TOP

呵呵,其实简单点来说是我英文太次了
现在看来正如我签名中所说啊
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

呵呵,我也在用有道词典。

TOP

看到3L的博客却实是这样,好像在脚本之家看见过,但没太关注,看来要改改了
还是用一下TYPENAME吧看来只要 ...
wc726842270 发表于 2011-8-15 09:34

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

看清楚出处。

TOP

微软的手册其实有很多小问题,包括在线的英文版都有楼主说的这个问题~
很多时候,类型查询函数和类型判断函数非常有用~

TOP

微软的手册其实有很多小问题,包括在线的英文版都有楼主说的这个问题~
很多时候,类型查询函数和类型判断 ...
applba 发表于 2012-1-18 21:17

除了这个还有什么?

TOP

回复 12# Demon

再比如,里面讲到for EACH……NEXT循环语法的时候,next后面是不能跟循环变量的。
而手册中,确给出来了!

TOP

回复  Demon

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

你看的是VB的文档吧。

http://msdn.microsoft.com/en-us/ ... e%28v=vs.85%29.aspx

TOP

TOP

返回列表