我有一个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上出现?