Vbscript VBS不允许编程

Vbscript VBS不允许编程,vbscript,Vbscript,我正在做一些编程,当我尝试运行它时,我收到一条错误消息。我的代码: MsgBox ("hi") sleep (2) MsgBox ("you ok" vbYesNo, "how are you?") Select Case result Case vbYes, MsgBox ("that's good!") Case vbNo, MsgBox ("sorry to hear that.") End Select 线路:3 字符:18 错误:应为源:Micros

我正在做一些编程,当我尝试运行它时,我收到一条错误消息。我的代码:

MsgBox ("hi")
sleep (2)
MsgBox ("you ok" vbYesNo, "how are you?")

Select Case result
    Case vbYes,
        MsgBox ("that's good!")
    Case vbNo, MsgBox ("sorry to hear that.")
End Select
线路:3 字符:18 错误:应为源:Microsoft VBScript编译错误


问题是,错误表明您有编译问题,但查看示例代码的其余部分,您还有其他问题等待纠正

MsgBox函数中缺少参数语法:

线路:3

字符:18

错误:应为源:Microsoft VBScript编译错误

是因为函数MsgBox需要用逗号分隔的参数,但“确定”后的参数分隔符丢失,导致编译器引发异常

调用子对象时不能使用括号:

当调用一个不返回值的过程时,使用括号括住传递给该过程的多个参数将导致:

Microsoft VBScript编译错误:调用子脚本时无法使用括号

需要注意的是,如果它只是一个参数,它不会编译失败,但这不是因为它接受一个参数,而是因为它将括号视为参数的一部分,而不是Eric Lippert在中详细讨论的过程的一部分

MsgBoxHi’会有用的 这相当于写作

调用MsgBoxHi'注意额外的括号 这可能有点混乱,所以当涉及到多个参数时,您可能认为这是可以的

你还好吗?不,你好吗这将导致错误 但是,由于括号现在表示参数括号,因此它变得无效并引发编译错误。要避免这种情况,你可以做三件事

去掉括号

MsgBox你还好吗,vbyesno,你好吗? 如果过程可以返回值,则返回值

结果=MSGBOXY你还好,vbYesNo,你好吗? 当您在下一行检查result的值时,这将是正确的选项,因为它的result将包含在MsgBox函数中单击vbYes或vbNo的结果

使用Call语句作为过程调用的前缀

打电话给MsgBoxy好的,vbYesNo,你好吗? 语法错误:

Microsoft VBScript编译错误:语法错误

这可以归结为Case参数后面的尾随逗号,只要删除逗号,代码就会编译

选择案例结果 案例vbYes 打电话给MSGBox,太好了! 案例vbNo 打电话给Msgbox很抱歉听到这个消息。 结束选择 睡眠时间:

在示例代码等待0.002秒时,Sleep函数需要以毫秒而不是秒表示的值。等待2秒钟,我假设这是我的用意

打电话给Sleep2000 有用的链接
试试msgbox你还好吗,vbyesno,你好吗?一旦你解决了这个问题,你还需要删除案例变量末尾的尾随,否则你会得到Microsoft VBScript编译错误:语法错误,而且你的msgbox函数调用需要返回值来使用方括号,或者以Call msgbox…作为前缀。。。,更不用说你的睡眠了,加上它只睡了0.002秒睡眠是毫秒而不是秒。如果你仔细阅读有关VBScript语法和你试图使用的函数/语句的文档,那就太好了