excel VBA - 解析数据的函数

时间:2015-07-02 16:36:01

标签: excel vba 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

在模块中使用Scrape函数

Function Scrape()

Dim IE As Object
Dim HTMLDoc As HTMLDocument
Dim oHTML_Element As IHTMLElement

MsgBox IE.document.Title

End Function

我觉得我知道这里的问题是IE没有从工作表到模块,反之亦然,但我不太确定如何解决它。

你的帮助将得到很大的帮助

1 个答案:

答案 0 :(得分:2)

您必须公开声明IE对象变量,然后使用它的完全限定名称来引用它。为此:

  1. 位于Worksheet代码模块类型Public IE as Object
  2. 的顶部
  3. IE Click事件和SellIt函数中删除Scrape的变量声明。由于这是公开宣布的,因此不应在代码中私下声明。
  4. 在标准模块中,还要删除IE声明。 (与步骤2的原因相同)
  5. 更改MsgBox IE.document.Title以包含工作表的代号。例如,如果代码表为Sheet1,则应显示MsgBox Sheet1.IE.document.Title
  6. 如果有帮助,请告诉我。