Excel VBA:加速UDF以从网页获取数据

时间:2013-11-26 16:59:24

标签: excel vba excel-vba

我的UDF每次调用时都会从网页中提取数据。

连接就像:

Public Sub myConnection(id)
    Set oHtml = New HTMLDocument
    With CreateObject("WINHTTP.WinHTTPRequest.5.1")
        .Open "GET", "http://www.example.com" & id, False
        .send
        oHtml.body.innerHTML = .responseText
    End With
End Sub

这是拉动股票数据并且工作正常,但是当进行几百次UDF调用时,工作簿变得非常慢。

我的功能如下:

Function myFunction(id,element)
Call myConnection(id)
Select Case element
    Case "p" 
    Set dados = oHtml.getElementsByClassName("thisClass")(0)
    myFunction = dados.innerText
   //etc...
End Select
End Function

有更好的(更快)方法吗?

我尝试将页面存储在某种缓存中。我试图将页面推入一个数组,但我无法编写正确的代码来获取和使用该数组中的页面。

数组应该有2个维度:

  1. id(使用股票代码查询页面)
  2. 名称,价格,测试版等
  3. 我知道这不是非常具体,但我经过了很多研究,无法继续前进,所以也许有人可以指出一些方向或提出解决方案。

    提前致谢。

0 个答案:

没有答案