如何在 Excel VBA 宏中等待 Web 查询完成

如何在 Excel VBA 宏中等待 Web 查询完成

我有一个 Excel 文件,它使用 API 从网站查找一些数据。它是使用 Excel 内置的 PowerQuery 功能中的标准“从 Web 获取数据”构建的。我运行一个宏来更新查询,该查询设置为在后台运行,以便我在执行时可以继续工作。我还有另一个宏也需要运行,但要等到第一个宏完成之后才能运行。要更新单个查询,我可以轻松调用此宏:

ActiveWorkbook.Connections("Query - USPS_ZipLookup").Refresh

但是,我不知道如何确定它是否已完成。我知道添加之类的技术,Application.Wait但是这会将程序锁定一段时间,并且无法知道查询可能需要多少秒才能运行(有时很快,有时很慢)。我也可以通过循环Do ... Loop大量次数来伪造延迟(这是非阻塞的),但是我还是不能确定查询是否真的完成了。我知道如果我直接从数据库连接查询,有办法检查这一点,但找不到对基本 Web 查询进行检查的方法。谢谢!

相关内容