VBA检查webbrowser的ActiveX控件

时间:2017-10-29 06:44:27

标签: excel vba excel-vba

我有一个带有宏的工作簿来生成HTML文件,并将其显示在嵌入其中一个工作表的Web浏览器中。在excel 2016中测试这个宏之后,我遇到了这里描述的activeX控件的问题:How to make Microsoft Web Browser object work in Excel 2016

以下是在网络浏览器中加载页面的脚本:

Sub LoadHTML()
    Set IE = Sheets("Report").WebBrowser1
    IE.Navigate2 (myFile)
End Sub

但是如果activeX控件不起作用,则此脚本会返回错误。 我找到了解决这个问题的方法:

Sub LoadHTML()
On Error GoTo OpenInIE
    Set IE = Sheets("Report").WebBrowser1
    IE.Navigate2 (myFile)
Exit Sub
OpenInIE:
    With New InternetExplorer
        .Visible = True
        .Navigate myFile
    End With
End Sub

有没有办法检查activeX控件是否工作而不会产生错误?

而且,BTW,如果不修复activeX控件并且需要在外部浏览器中打开HTML文件,是否可以在默认系统浏览器而不是IE中打开文件?

1 个答案:

答案 0 :(得分:0)

找到了检查IE activex控件是否存在的方法

Sub checkIE()
    Dim aaa As Shape
    For Each aaa In Sheets("Report").Shapes

        Debug.Print aaa.OLEFormat.progID

        If aaa.OLEFormat.progID = "Shell.Explorer.2" Then MsgBox "we have IE"

    Next aaa
End Sub
相关问题