Excel CreateObject InternetExplorer:无法通过ActiveX组件创建对象

时间:2017-07-18 06:31:03

标签: excel excel-vba internet-explorer-11 createobject vba

我有一个Intranet Web应用程序(Java,Talend Open Studio),它使用一个简单的宏创建Excel 2013 XLSM。

根据用户选择,除了其他数据外,xlsm还包含0到15个指向另一个具有不同参数的Intranet Web应用程序的链接。

链接将作为单元格值保存在隐藏的工作表中 当用户选择数据表中的一个链接时,将触发宏,该宏读取相应的链接单元格值并使用该链接URL启动IE。

自从迁移到Win10(64位)后,我们在PC上注意到3种不同的行为:

1)在某些PC上,用户可以在保存XLSM之前点击链接

2)在其他PC上,只有在保存XLSM后才能点击链接

3)在其他电脑上点击链接根本不起作用

行为否1应该是目标,并且在迁移之前就像那样工作 所有PC都有WIN10和Office 2013.
Excel配置似乎也一样。

宏看起来像:

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
    Call OpenURL(Target.Value)
End Sub

Public Sub OpenURL(iHyperLinkName As String)
On Error GoTo ErrHandler:

Dim hyperlinkSheet As Worksheet
Dim translatedURL As String
Dim CellComment As String
Dim IEBrowser As Object

'Fetch the URL corresponding to the clicked cell
iHyperLinkName = Replace(iHyperLinkName, vbCr, "")
iHyperLinkName = Replace(iHyperLinkName, vbLf, "")
iHyperLinkName = Replace(iHyperLinkName, vbCrLf, "")
iHyperLinkName = Replace(iHyperLinkName, " ", "")

Set hyperlinkSheet = ThisWorkbook.Sheets("Hyperlinks")

For I = 1 To 15
    CellComment = hyperlinkSheet.Range("A" & I).Comment.Text
    If StrComp(CellComment, iHyperLinkName, vbTextCompare) = 0 Then
      'Create instance
      translatedURL = hyperlinkSheet.Range("A" & I).Value
      Set IEBrowser = CreateObject("InternetExplorer.Application")
      IEBrowser.Navigate2 translatedURL
      IEBrowser.Visible = True
      Exit For
    End If
Next I

ErrHandler:
End Sub

调试显示在两种情况下,No 2& 3问题在于

Set IEBrowser = CreateObject("InternetExplorer.Application")

删除“errorhandler”时,我收到以下错误(翻译自德语):

Runtime error 429
Object creation by ActiveX Component not possible

我尝试了各种其他变体来打开我在网上找到的网址,但行为总是一样的。

另外,由于它在各种PC上的工作方式不同,我现在不确定它是否与代码有关,或者是否存在不正确的设置。

宏由有效证书签名,供应商已添加到所有相关PC的Excel认证管理器中。

我还在网上发现了各种文件,告诉我在发生此错误时注册丢失的DLL。但是,为什么只有在未保存XLSM的情况下才会在某些PC上出现?

0 个答案:

没有答案