出于某种原因,我正在尝试解析此网站:http://www.vblandrecords.com/index.aspx
。
我目前正在尝试点击Document type
标签,然后更改From date
值。
我想我可以使用以下代码在VBA中完成它:
Option Explicit
Public WithEvents ieObj As InternetExplorer
Public Sub Launch()
Set ieObj = CreateObject("InternetExplorer.Application")
ieObj.Visible = True
ieObj.navigate ("http://www.vblandrecords.com/index.aspx")
While ieObj.readyState <> READYSTATE_COMPLETE
Wend
Dim TmpDOMObj, Frame As Object
Set TmpDOMObj = ieObj.document.getElementById("tbMaintd3")
TmpDOMObj.Click
Set Frame = ieObj.document.getElementById("tbMain_frame3")
Set TmpDOMObj = Frame.contentWindow.document.getElementById("txtStart")
TmpDOMObj.Value = "10/1/2010"
End Sub
但是,我得到了一个运行时错误91 - 没有设置对象变量。
我做了一些研究,看来tbMain_frame3
下的树结构只有在我点击tbMaind3
标签后才会形成,我在MSIE开发者工具中看到它,但我看不到它在我的剧本中。
我认为这与我读过的iFrame安全问题有关,但保留在第一个标签上并处理tbMain_frame0
的工作完全正常。
任何人都可以给我一些关于发生了什么以及如何处理这个页面的提示吗?
感谢。
答案 0 :(得分:1)
这可能不是最好的主意,但你可以等待错误消失:
Dim test
On Error Resume Next
Do While True
test = Frame.contentWindow.Document.getElementById("txtStart").Value
If Err.Number = 0 Then
Exit Do
ElseIf Err.Number > 0 And Err.Number <> 91 Then
Exit Sub
End If
Err.Clear
Loop