VBA - 等待IE Element加载并复制到excel?

时间:2017-12-08 10:51:31

标签: javascript excel vba internet-explorer

我有一个这样的网页(带表格):

Acount    Forecast     Date
A         A            01.12.2016
B         B            01.12.2016
C         C            01.12.2016

网页使用JAVA并且我的表元素需要几秒钟才能加载(即使在IE完全加载或IE就绪状态完成后也是如此)。

我想将表数据(通过使用我的表元素类名称)复制到excel中。 我必须考虑到即使在我的网页加载之后,它仍然需要几秒钟才能加载我的表并且在VBA可以引用表元素之前。

我正在使用以下代码尝试执行此操作,但我收到此错误:

  

对象不支持此属性或方法

在这一行:

Set objCollection = html.getElementsByClassName("A22bb03b7e17940b4a081c992458916e4308")

完整代码:

Sub Macro1()
Dim ie      As InternetExplorer
Dim html    As IHTMLDocument
Set ie = New InternetExplorerMedium
ie.Visible = True
ie.navigate "http://gbrlon02-sql-17/Reports/Pages/Report.aspx?ItemPath=%2fCutlass+Reports%2fManagement+Reporting%2fForwardOrdersSticksOnly+-+ForecastVariance+(Monthly+Report)"
While ie.Busy
    DoEvents
Wend
While ie.readyState < 4
    DoEvents
Wend
Set html = ie.document

Dim objCollection As Object
Dim objElement As Object


Set objCollection = html.getElementsByClassName("A22bb03b7e17940b4a081c992458916e4308")

Do
    i = 0
    While i < objCollection.Length
        If objCollection(i).className = "A22bb03b7e17940b4a081c992458916e4308" Then
            Set objElement = objCollection(i)
        End If
        i = i + 1
    Wend

Loop Until Not objElement Is Nothing

If objElement.Length > 0 Then
    MsgBox objElement(0).innerText
End If
ie.Quit
Set ie = Nothing
End Sub

请有人告诉我我哪里出错了吗?

0 个答案:

没有答案