如何识别VBA中Workbook.RefreshAll执行时存在步骤级错误的查询
Excel VBA 查询刷新时检测步骤级错误的问题
需求
我希望通过Excel VBA子程序调用查询刷新时,能明确知道哪些查询存在步骤级错误。
现有方法的痛点
- 使用
Workbook.RefreshAll批量刷新:部分查询出现步骤级错误时,子程序不会报错,无法定位具体出错的查询。 - 逐个调用
ThisWorkbook.Connections("Query - ExampleQueryName").Refresh刷新:查询的步骤级错误会触发子程序报错,能定位问题,但存在两个明显缺陷:- 查询数量多、执行顺序不明确时,代码配置复杂度高
- 后续新增查询需要手动修改代码并确定执行顺序
调研到的方案及不足
我找到过类似以下的遍历刷新方案:
For Each Connection In ActiveWorkbook.Connections If Connection.Type = xlConnectionTypeOLEDB Then Connection.OLEDBConnection.BackgroundQuery = False Connection.Refresh End If Next Connection
但这个方案无法自动识别查询的依赖执行顺序,最坏可能导致错误结果,最好的情况也可能引发部分查询重复计算。
内容的提问来源于stack exchange,提问作者Jos Woolley
相关产品推荐
相关产品推荐

