• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    VBS中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返回真,于是可以判断。

    看来文档写的也不一定是对的,尽信文档,不如无文档。
    原文: http://demon.tw/programming/vbs-inputbox.html
    上一篇:VBS获取重定向的URL的代码
    下一篇:用VBS精确计算100的阶乘的实现代码
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    VBS中InputBox函数的返回值使用技巧 VBS,中,InputBox,函数,的,返回,