我正在尝试解析一个网页,但我很难获得信息。
我有一个简单的按钮,可以导航到工作表中的网站
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
在模块中使用Scrape函数
Function Scrape()
Dim IE As Object
Dim HTMLDoc As HTMLDocument
Dim oHTML_Element As IHTMLElement
MsgBox IE.document.Title
End Function
我觉得我知道这里的问题是IE没有从工作表到模块,反之亦然,但我不太确定如何解决它。
你的帮助将得到很大的帮助
答案 0 :(得分:2)
您必须公开声明IE
对象变量,然后使用它的完全限定名称来引用它。为此:
Worksheet
代码模块类型Public IE as Object
IE
Click事件和SellIt
函数中删除Scrape
的变量声明。由于这是公开宣布的,因此不应在代码中私下声明。IE
声明。 (与步骤2的原因相同)MsgBox IE.document.Title
以包含工作表的代号。例如,如果代码表为Sheet1
,则应显示MsgBox Sheet1.IE.document.Title
如果有帮助,请告诉我。