如何在If / Else语句中打开ie.exe

时间:2019-07-21 10:23:38

标签: vbscript

我正在尝试编写一段代码,以便当用户在我的消息框中单击“是”时,我的yes.gif在IE中打开,但是如果用户单击“否”,我希望我的no.gif在IE中打开。我在第5行(Else语句)收到了synax错误。

我的代码:

Result = MsgBox("Text", 20, "Title")

If Result = vbYes Then Set objExplorer = CreateObject("InternetExplorer.Application")
Else Result = vbNo Then Set objExplorer1 = CreateObject("InternetExplorer.Application")

With objExplorer
    .Navigate "about:blank"
    .Visible = 1
    .Document.Title = "Right Decision"
    .Toolbar = False
    .Statusbar = False
    .Top = 500
    .Left = 500
    .Height = 400
    .Width = 600
    .Document.Body.InnerHTML = "<img src='C:\User\yes.gif'>"
End With

With objExplorer1
    .Navigate "about:blank"
    .Visible = 1
    .Document.Title = "Wrong Decision"
    .Toolbar = False
    .Statusbar = False
    .Top = 500
    .Left = 500
    .Height = 400
    .Width = 600
    .Document.Body.InnerHTML = "<img src='C:\User\no.gif'>"
End With

1 个答案:

答案 0 :(得分:1)

您的代码存在多个问题:

  • MsgBox中唯一可能的值是vbYesvbNo,因为您使用vbYesNo标志启动了它。由于结果是二进制的,因此无需进行多次比较(无论如何,这种比较在VBScript中无法正常工作)。

  • 您的If语句使用单行If..Then形式,这意味着后续的Else无效。即使它不是无效的,语法仍然是不正确的。

  • 只有字符串和图像名称是唯一的区别时,启动不同的IE实例是没有意义的。

  • 您的代码尝试配置两个实例,但是无论用户选择如何,其中一个实例都是无效的。

使用If..Then..Else定义实际不同的设置,然后在条件之后创建IE实例并进行相应的配置。

Result = MsgBox("Text", vbYesNo + vbCritical, "Title")

If Result = vbyes Then
    title   = "Right Decision"
    picture = "C:\User\yes.gif"
Else
    title   = "Wrong Decision"
    picture = "C:\User\no.gif"
End If

Set ie = CreateObject("InternetExplorer.Application")

With ie
    .Navigate "about:blank"
    .Visible   = True
    .Document.Title = title
    .Toolbar   = False
    .Statusbar = False
    .Top       = 500
    .Left      = 500
    .Height    = 400
    .Width     = 600
    .Document.Body.InnerHtml = "<img src='" & picture & "'>"
End With