返回列表 发帖

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

其实我仅是想用ISEMPTY来判断INPUTBOX的返回值是否为空,但是很意外
当我不进行任何输入(当然也没设默认值),返回的却是非空,我想这并非是ISEMPTY的问题吧!!
首先先看2个很简单的脚本吧
dim str
str=inputbox("请进行输入","要求")
if isempty(str) then
msgbox "it's empty"
else
msgbox "it's "&str&"!"
end ifCOPY
当你不进行输入,而直接单击确定的话,它会是非空。这点很想不通
另外点击取消时,《script 56》说返回值为""(可以看看INPUTBOX的介绍)
此时再看看下面这个
dim a
a=""
if isempty(a) then
msgbox "OK"
else
msgbox "no"
end if COPY
1

评分人数

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

Dim InputStr
InputStr = InputBox("请输入")
If IsEmpty(InputStr) Then
  MsgBox "InputStr没有被定义"
  Else
  If InputStr = vbNullString Then
    MsgBox "InputStr被定义为空值"
    Else
    MsgBox "InputStr值为:" & InputStr
  End If
End IfCOPY
IsEmpty函数是用来判断变量是不是被定义了
如果被定义了返回值为False(哪怕是空值)否则为True
2

评分人数

一路飘过的鸟~~~

TOP

1

评分人数

TOP

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

TOP

本帖最后由 wc726842270 于 2011-8-15 10:26 编辑

看到3L的博客却实是这样,好像在脚本之家看见过,但没太关注,看来要改改了
还是用一下TYPENAME吧
dim str
str=inputbox("请进行输入","要求")
if isempty(str) then
msgbox typename(str)
else
msgbox typename(str)
end ifCOPY
看来只要按回车(确定)返回值就是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

返回列表