VBA如何缓存xmlhttp请求返回值?
Posted
技术标签:
【中文标题】VBA如何缓存xmlhttp请求返回值?【英文标题】:How to VBA caching xmlhttp request returned value? 【发布时间】: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 进行依赖关系树重建。 【参考方案1】:当 Excel 关闭时,您不能将项目保留在变量中。要保留数据,您需要将其写入某个地方,无论是工作表、数据库还是其他地方,很大程度上取决于您在做什么。当您使用 UDF 时,您不能在公式顶部复制 > 粘贴特殊 > 值以创建静态值吗?
【讨论】:
以上是关于VBA如何缓存xmlhttp请求返回值?的主要内容,如果未能解决你的问题,请参考以下文章
如何知道xmlhttp的responsetext返回值是啥?