【发布时间】:2012-03-05 05:51:03
【问题描述】:
我想缓存xmlhttp request 的返回值,以免在调用数百个这样的请求时等待太久。
我曾尝试在 Array/Collection 中缓存值,但是当 Excel 关闭并稍后重新打开时,所有缓存都丢失了!
更新
我在 100 个单元格中调用 myDemo() 100 次。这是它的 VBA 代码
Function myDemo (text)
url = "http://demo.namgivu.com/FIP/index.php?r=excelFunction/onSO00&text=" & text
url = url & "¤tTime=" & Now
'Call service
Set xmlHttp = CreateObject("MSXML2.xmlhttp")
xmlHttp.Open "GET", url, False
xmlHttp.Send
result = (xmlHttp.responseText)
myDemo = result
End Function
这里是my excel file。 Excel打开的时候一定要等这么久...
【问题讨论】:
-
由于您希望控制何时刷新结果,因此您可能不应该使用 UDF。将其切换为仅直接更新单元格值的子项。
-
演示文件中的某些内容使 UDF 不稳定。因此,每次编辑或更新都会导致使用重新计算 UDF 的每个公式。尝试使用 CTRL + SHIFT + ALT + F9 进行依赖关系树重建。
标签: excel caching vba xmlhttprequest user-defined-functions