excel VBA – parsing数据的函数
我正试图parsing一个网页,但是很难获取信息。
我有一个简单的button,导航到工作表中的网站
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刮在一个模块
Function Scrape() Dim IE As Object Dim HTMLDoc As HTMLDocument Dim oHTML_Element As IHTMLElement MsgBox IE.document.Title End Function
我有点以为我知道这里的问题是IE不从工作表到模块,反之亦然,但我不太清楚如何解决它。
你的帮助将会大大增加
您必须公开声明IE
对象variables,然后使用它的完全限定名称来引用它。 要做到这一点:
- 在
Worksheet
代码模块的顶部,inputPublic IE as Object
- 在
SellIt
Click事件和SellIt
函数中删除variables声明到IE
。 由于这是公开的,所以不应该在代码中私下声明。 - 在标准模块中,也删除
IE
声明。 (与步骤2相同的原因) - 更改
MsgBox IE.document.Title
以包含工作表的代号。 例如,如果工作表代号是Sheet1
它应该读取MsgBox Sheet1.IE.document.Title
让我知道如果有帮助。