1
我想解析一个网页,但在获取信息时遇到困难。excel VBA - 解析数据的函数
我有一个简单的按钮,浏览到一个网站,在工作表中
Private Sub Sellit_Click()
Dim IE As Object
Dim HTMLDoc As HTMLDocument
Dim oHTML_Element As IHTMLElement
Set IE = CreateObject("Internetexplorer.Application")
IE.Visible = True
apiShowWindow IE.hwnd, SW_MAXIMIZE
IE.navigate "https://www.yahoo.com/"
Do
Loop Until IE.ReadyState = READYSTATE_COMPLETE
DoEvents
Scrape
End Sub
虽然功能刮模块
Function Scrape()
Dim IE As Object
Dim HTMLDoc As HTMLDocument
Dim oHTML_Element As IHTMLElement
MsgBox IE.document.Title
End Function
在我还挺想我知道这里的问题是IE没有按不从工作表去模块,反之亦然,但我不太清楚如何解决它。
您的帮助将非常apperciated
这种方法在哪里失败? “IE.ReadyState”不等于“READYSTATE_COMPLETE”吗? Scrape()被调用了吗?在Scrape中,你永远不会将“IE”,“HTMLDoc”或“oHTML_Element”绑定到任何东西。 – Evan
抱歉,我对vba很陌生,在IE.readyState = Readystate_complete之后我调用了Scrape,并且我想要现有的IE的document.title,然后用msgbox测试它,看看我是否得到回报,显然不是。我如何拥有现有的IE标题? – Crays
我看到你试图调用'Scrape'的地方,但是我的问题是宏执行得太远,或者它在循环中挂起。我之前评论的第二部分仍然是真实的,“IE”从来没有设置为“Scrape”中的任何内容。 “Scrape”中的“IE”与“Sellit_Click”中的“IE”不同。 Dim关键字将它记录在不同位置的内存中。你可以通过'IE',rebind'IE'或者使用全局可变的'IE' [Varriable Scope](http://www.cpearson.com/excel/scope.aspx)在这里很重要。 – Evan