Board logo

标题: [问题求助] [已解决]VBS如何用ISEMPTY来判断inputbox的返回值? [打印本页]

作者: wc726842270    时间: 2011-8-15 08:49     标题: [已解决]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
复制代码

作者: ArdentMan    时间: 2011-8-15 09:08

  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
作者: Demon    时间: 2011-8-15 09:26

http://demon.tw/programming/vbs-inputbox.html
作者: wc726842270    时间: 2011-8-15 09:28

是么?这个函数的名字和它的功能有些不符啊,让人上火(可能也是我没认真看)呵呵,多谢了
作者: wc726842270    时间: 2011-8-15 09:34

本帖最后由 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(感觉好像又回到起点了,呵呵)
作者: Hello123World    时间: 2011-8-15 10:58

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

返回 Boolean 值指明变量是否已初始化
IsEmpty(expression)
expression 参数可以是任意表达式。然而,由于 IsEmpty 用于判断一个变量是否已初始化,故 expression 参数经常是一个变量名。
作者: Hello123World    时间: 2011-8-15 11:04

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

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

呵呵,其实简单点来说是我英文太次了
现在看来正如我签名中所说啊
作者: Hello123World    时间: 2011-8-15 11:13

呵呵,我也在用有道词典。
作者: Demon    时间: 2011-8-15 12:59

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

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

看清楚出处。
作者: applba    时间: 2012-1-18 21:17

微软的手册其实有很多小问题,包括在线的英文版都有楼主说的这个问题~
很多时候,类型查询函数和类型判断函数非常有用~
作者: Demon    时间: 2012-1-19 00:03

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

除了这个还有什么?
作者: applba    时间: 2012-1-19 10:11

回复 12# Demon

再比如,里面讲到for EACH……NEXT循环语法的时候,next后面是不能跟循环变量的。
而手册中,确给出来了!
作者: Demon    时间: 2012-1-19 10:39

回复  Demon

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

你看的是VB的文档吧。

http://msdn.microsoft.com/en-us/ ... e%28v=vs.85%29.aspx
作者: applba    时间: 2012-1-19 14:18

http://msdn.microsoft.com/en-us/library/tywtbxd0
http://msdn.microsoft.com/zh-cn/site/tywtbxd0
作者: Demon    时间: 2012-1-19 14:57

applba 发表于 2012-1-19 14:18

不好意思我看成For Next了,还有没有其他的?




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2