【发布时间】:2018-07-03 01:12:51
【问题描述】:
当所需数据已经显示时,我会尝试停止 IE,否则即使我可以看到 .Visible=True 上的所有内容,它也会继续加载。
我想将某种变体 (SOMETHING) 传递给加载 sub 的网页,它会相应地测试 IHTMLElement。
我意识到我无法预先定义 IHTMLElement 并在加载页面之前传递它。正在谷歌搜索,但找不到任何解决方案。目前这超出了我的知识范围,我想弄清楚如何做到这一点。
Private ie_browser As InternetExplorer
Private Sub Download_Test()
Dim str_url As String
str_url = "..."
Set ie_browser = New InternetExplorer
ie_browser.Visible = True
'here I want pass that spec variant to the Sub
Call Load_WebPage(str_url, SOMETHING)
End Sub
Private Sub Load_WebPage( _
ByVal str_url As String, _
ByVal SOMETHING _
)
Dim html_data_element As IHTMLElement
Dim int_counter_sleep As Integer
ie_browser.Navigate str_url
For int_counter_sleep = 1 To 60 '60 x 500 = 30000 ms = 30 sec
If ie_browser.Busy Or ie_browser.READYSTATE <> 4 Then
'SOMETHING -> html_data_element
'here I want to use that spec variant to define said IHTMLElement
If Not html_data_element Is Nothing Then
ie_browser.Stop
Exit For
End If
Sleep 500
Else
Exit For
End If
Next int_counter_sleep
End Sub
【问题讨论】:
-
请注意:
Dim str_url, str_html_innertext As String将定义str_url As Variant,如果未指定类型,则默认为。您需要为每个变量Dim str_url As String, str_html_innertext As String指定一个类型 -
omg...谢谢提醒!
-
如果网页源本身包含必要的数据,您可以选择
XMLHTTP+HTMLDocument。看看here。 -
嗯,这对我来说是另一个层次,但我想我迟早要深入研究它。
-
是否有一个 URL 可以证明您可以分享这个问题?
标签: html excel internet-explorer vba