If statement 函数循环的If语句不正确

If statement 函数循环的If语句不正确,if-statement,vbscript,inputbox,msgbox,If Statement,Vbscript,Inputbox,Msgbox,我试图用VBScript在Python中重新创建一个简单的程序,让它在对话框中运行 代码如下: Set objShell = CreateObject("Wscript.Shell") Function Query() query = InputBox("Please input the Subreddit you with to navigate to e.g (globaloffensive)", "iixCarbonxZz's Subreddit Finder") End Fun

我试图用VBScript在Python中重新创建一个简单的程序,让它在对话框中运行

代码如下:

Set objShell = CreateObject("Wscript.Shell")

Function Query()
    query = InputBox("Please input the Subreddit you with to navigate to e.g (globaloffensive)", "iixCarbonxZz's Subreddit Finder")
End Function

Do
    If query = "" Then
        err = MsgBox("Please enter a Valid Subreddit", vbOKOnly + vbExclamation, "Invalid")
    Else
        objShell.Run("http://www.reddit.com/r/" & query)
        WScript.Quit()
    End If
    Query()
Loop
我的问题是:

代码打开输入文本框,如果按下OK按钮时文本框中没有任何内容,则应显示“err”错误消息框,然后循环。如果它在输入框中得到一些东西,它应该使用它,然后关闭脚本

实际上,如果我将该框留空,它将显示消息,循环返回到输入框,但如果留空,它将跳过if语句并重新加载输入框。如果某个输入是它可以使用的,它将跳过If语句,第一次重新加载该框,然后第二次运行并关闭。如果在此之前提交了一个空白,则在正确使用输入之前,将再次跳过If语句

  • 使用变量存储函数的结果
  • 不要对变量和函数使用相同的名称
  • 演示:


    这是非常有效的。谢谢你的回复。非常感谢。@ixcarbonxzz另外,它是一个内置对象。不要将其用作标识符。@AnsgarWiechers感谢您指出这一点,我将更改它以避免任何问题。谢谢。
    Option Explicit
    
    Function getQuery()
        getQuery = InputBox("Please input the Subreddit you with to navigate to e.g (globaloffensive)", "iixCarbonxZz's Subreddit Finder")
    End Function
    
    Dim query
    Do
        query = getQuery()
        If query = "" Then
            err = MsgBox("Please enter a Valid Subreddit", vbOKOnly + vbExclamation,"Invalid")
        Else
            WScript.Echo "http://www.reddit.com/r/" & query
            WScript.Quit 0
        End If
    Loop