我正在尝试编写一段代码,以便当用户在我的消息框中单击“是”时,我的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
答案 0 :(得分:1)
您的代码存在多个问题:
MsgBox
中唯一可能的值是vbYes
和vbNo
,因为您使用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