答案 0 :(得分:1)
确保这些引用符合此优先顺序。
HTML和Internet控件需要在OLE自动化之上。
如果此后仍有此问题,请在Office安装上运行修复,并刷新可能已损坏的.DLL文件。
更新:7/6/2017
上面的上述答案将重新关联引用并允许脚本编译。
但是,还有更好的方法。
当VBA脚本与不同平台(OS和MS Office版本)的其他计算机共享并使用早期绑定时,会出现此问题。早期绑定可以减少延迟,是仅适用于一台计算机的正确方法。
答案是在脚本中使用后期绑定格式,而不是选择任何引用。将除object之外的任何数据类型对象更改回object,并使用以下格式:
Sub Late_Binding()
Dim IE_App_obj As Object
Dim MyShell_obj As Object
Dim IE_Window_obj As Object
Dim Windows_cnt As Long
Dim x_cnt As Variant
Dim HTML_Element_obj As Object
Set IE_App_obj = CreateObject("InternetExplorer.Application")
'Use IE_App_obj to Navigate to webpage and control it.'
Set MyShell_obj = CreateObject("Shell.Application")
'Use MyShell_obj to find an existing webpage and control it.'
Let Windows_cnt = MyShell.Windows.Count
For x_cnt = Windows_cnt - 1 To 0 Step -1
On Error Resume Next
If Instr(MyShell_obj.Windows(x_cnt).Document.Title,"WebPage_Title") > 0 Then
Set IE_Window_obj = MyShell_obj.Windows(x_cnt)
Exit For
End If
Next
Set HTML_Element_obj = IE_Window_obj.Document.getElementByID("ID_text")
End Sub
延迟会增加,但稳定性会增加。