VBS中InputBox函数的返回值使用技巧
程序员文章站
2022-03-21 11:26:01
如果用户单击确定或按下 enter,则 inputbox 函数返回文本框中的内容。如果用户单击取消,则函数返回一个零长度字符串 ("")。 这是参考手册对inputbox函...
如果用户单击确定或按下 enter,则 inputbox 函数返回文本框中的内容。如果用户单击取消,则函数返回一个零长度字符串 ("")。
这是参考手册对inputbox函数返回值的说明,简单而明了,还有必要专门写一篇文章来讨论?我知道你一定对标题不屑一顾,换成是我,我也一定会不屑一顾,如果我没有看到百度vbs吧里的一个帖子。
关于inputbox 疑惑
————————————————————————————
如果用户单击确定或按下 enter,则 inputbox 函数返回文本框中的内容。如果用户单击取消,则函数返回一个零长度字符串 ("")。
————————————————————————————
那如何区分用户是没有输入字符按了“确定”
还是按了“取消”呢?
有些时候想传入空字符的,而有些时候想取消输入
按照参考手册的说法,无论是用户没有输入字符按了“确定”,还是按了“取消”,函数的返回值都是零长度字符串""。这样看来,似乎没有办法区分用户是没有输入字符按了“确定”,还是按了“取消”。
我也以为这是无法实现的,但是下面却有人给出了解决方案:
str=inputbox("???")
if str="wffheu" then msgbox("a")
else if str=false then "您按。。。取消"
end if
虽然有语法错误,但是用false的确可以区分出“确定”和“取消”。为什么呢?因为如果用户单击取消,inputbox返回的并不是一个零长度的字符串"",而是empty
用一个简单的程序就可以测试出来:
str = inputbox("enter a string")
msgbox typename(str)
当没有输入字符直接按“确定”时输出string,而按“取消”时输出empty。于是,似乎可以这样来判断到底是“确定”还是“取消”:
str = inputbox("enter a string")
if str = empty then
msgbox "cancel"
else
msgbox "ok"
end if
只可惜上面的代码是错的,无论按下“确定”还是“取消”,都会输出cancel。因为无论是"" = empty(比较前empty会隐式转化成"")还是empty = empty都会返回真,正确的方法是用isempty来判断:
str = inputbox("enter a string")
if isempty(str) then
msgbox "cancel"
else
msgbox "ok"
end if
再说说为什么可以用false来判断,"" = false返回假(比较前false会隐式转换成字符串"false"),而empty = false返回真,于是可以判断。
看来文档写的也不一定是对的,尽信文档,不如无文档。
原文:
这是参考手册对inputbox函数返回值的说明,简单而明了,还有必要专门写一篇文章来讨论?我知道你一定对标题不屑一顾,换成是我,我也一定会不屑一顾,如果我没有看到百度vbs吧里的一个帖子。
关于inputbox 疑惑
————————————————————————————
如果用户单击确定或按下 enter,则 inputbox 函数返回文本框中的内容。如果用户单击取消,则函数返回一个零长度字符串 ("")。
————————————————————————————
那如何区分用户是没有输入字符按了“确定”
还是按了“取消”呢?
有些时候想传入空字符的,而有些时候想取消输入
按照参考手册的说法,无论是用户没有输入字符按了“确定”,还是按了“取消”,函数的返回值都是零长度字符串""。这样看来,似乎没有办法区分用户是没有输入字符按了“确定”,还是按了“取消”。
我也以为这是无法实现的,但是下面却有人给出了解决方案:
复制代码 代码如下:
str=inputbox("???")
if str="wffheu" then msgbox("a")
else if str=false then "您按。。。取消"
end if
虽然有语法错误,但是用false的确可以区分出“确定”和“取消”。为什么呢?因为如果用户单击取消,inputbox返回的并不是一个零长度的字符串"",而是empty
用一个简单的程序就可以测试出来:
复制代码 代码如下:
str = inputbox("enter a string")
msgbox typename(str)
当没有输入字符直接按“确定”时输出string,而按“取消”时输出empty。于是,似乎可以这样来判断到底是“确定”还是“取消”:
复制代码 代码如下:
str = inputbox("enter a string")
if str = empty then
msgbox "cancel"
else
msgbox "ok"
end if
只可惜上面的代码是错的,无论按下“确定”还是“取消”,都会输出cancel。因为无论是"" = empty(比较前empty会隐式转化成"")还是empty = empty都会返回真,正确的方法是用isempty来判断:
复制代码 代码如下:
str = inputbox("enter a string")
if isempty(str) then
msgbox "cancel"
else
msgbox "ok"
end if
再说说为什么可以用false来判断,"" = false返回假(比较前false会隐式转换成字符串"false"),而empty = false返回真,于是可以判断。
看来文档写的也不一定是对的,尽信文档,不如无文档。
原文: