为了从 Excel 中的 web 服务获取数据,我创建了一个 excel 插件提供函数来获取它;用户只需要输入单元格:
=sendRequest("http://webservice.com")
我有 2 个 excel 文件来演示sending request
两种方法:1.同步和 2.异步
在sync
方法中,该函数可以正常发送请求和获取数据。但是,如果我们有 100、200 个单元格调用它,Excel 将花费大量时间等待;这也使得 Exel没有响应。
我目前的解决方案是使用如下代码async
的方法
Public Function sendAsyncRequest(URL)
'other statement
' Get some stuff asynchronously.
xmlHttpRequest.Open "GET", URL, True
xmlHttpRequest.send
sendAsyncRequest = xmlHttpRequest.responseText
End Function
但单元格的值始终为零 0 而不是响应文本。
我必须使用我的处理程序类将其与OnReadyStateChange
of绑定,xmlHttpRequest object
以将响应文本设置到单元格中。但是,它也会清除单元格的公式。
所以我的问题是如何在不更改其公式的情况下更改单元格的显示文本?
我也欢迎另一种发送请求并在async
方法下获取返回值的解决方案。