有没有办法可以限制 Web 服务功能同时执行的 HTTP 调用数量?

有没有办法可以限制 Web 服务功能同时执行的 HTTP 调用数量?

我有一个电子表格,它使用 Web 服务函数 ( WEBSERVICE()) 在 API 上查找数据。

这是一张很大的表格,而且 Excel 似乎同时向该 API 发出许多请求,导致服务超载。

有没有办法告诉 Excel 在重新计算我的工作表时可以同时发出多少个请求?

答案1

您确实必须使用 VBA 来实现这一点。我无法编写代码,但方法是将每个WEBSERVICE()公式的源信息输入到电子表格中,而不是实际公式中。然后让 VBA 循环遍历单元格进行计算,并利用其生成公式结果的能力有效地逐个运行每个单元格的公式。

当然,更好的办法是使用 VBA 自身的“使用 Web 服务”功能。2009Stack Overflow年的以下问题看起来非常有用:

https://stackoverflow.com/questions/474936/call-web-service-in-excel

并且各种答案中的一个链接仍然可以转到有关该主题的 Microsoft 支持文章:

https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2007/dd819156(v=office.12)?redirectedfrom=MSDN

我只检查了给出的所有链接中的一个,因为它看起来最权威,但所有其他链接可能都运行良好。

一个答案中还有一个宏,如果只是为了指导一个人如何设置自己的宏,它可能很有用。当然,上面链接中的 MS 网站为其讨论的所有内容提供了示例代码片段。MS 在这方面做得很好。

重要的是,您不能计算工作表的一部分而不是全部。

如果可以的话,您可以关闭计算,让宏选择大小合适的单元格组并让它们计算,先计算一个组,然后计算下一个,依此类推。这是一个很容易编写的宏,但遗憾的是,Excel 不是这样工作的。

既然你无法做到,就只剩下 VBA 了,幸运的是,它几乎可以无限控制。而且很有可能,它会更快。所以,除了学习曲线之外,它还算是“一切都好”。

相关内容