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

每次调用时,我的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是这样的:

 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 

有没有更有效率(更快)的方法来做到这一点?

我试图将这些页面存储在某种caching中。 我试图把页面推入一个数组,但我不能写出正确的代码来获取和使用该数组中的页面。

该arrays应该有2个维度:

  1. id(正在使用股票行情查询页面)
  2. 名称,价格,testing版等

我知道这不是很具体,但是我重读了很多,不能再向前走,所以也许有人可以指点一些方向或者提出一个解决scheme。

提前致谢。