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,然后使用它的完全限定名称来引用它。 要做到这一点:

  1. Worksheet代码模块的顶部,inputPublic IE as Object
  2. SellIt Click事件和SellIt函数中删除variables声明到IE 。 由于这是公开的,所以不应该在代码中私下声明。
  3. 在标准模块中,也删除IE声明。 (与步骤2相同的原因)
  4. 更改MsgBox IE.document.Title以包含工作表的代号。 例如,如果工作表代号是Sheet1它应该读取MsgBox Sheet1.IE.document.Title

让我知道如果有帮助。