如何用VBA关闭Excel中后台下载数据预览设置以加速PowerQuery刷新?
实现方法
你可以通过Excel对象模型中Workbook.QueryOptions的EnableBackgroundDataPreview属性直接控制该设置,以下是具体的VBA实现方案:
基础版:关闭设置后刷新
在执行PowerQuery刷新前,将该属性设为False即可关闭后台数据预览:
' 关闭后台数据预览设置 ThisWorkbook.QueryOptions.EnableBackgroundDataPreview = False ' 执行PowerQuery刷新(这里以刷新所有查询为例) ThisWorkbook.RefreshAll ' 等待刷新完成(可选,确保刷新操作执行完毕) DoEvents
进阶版:保留用户原设置并恢复
如果需要在刷新完成后还原用户原本的设置状态,避免修改用户偏好,可以先保存初始设置,刷新后再恢复:
Sub OptimizePowerQueryRefresh() Dim originalPreviewState As Boolean ' 保存用户当前的后台预览设置状态 originalPreviewState = ThisWorkbook.QueryOptions.EnableBackgroundDataPreview ' 关闭后台数据预览以提升刷新速度 ThisWorkbook.QueryOptions.EnableBackgroundDataPreview = False ' 执行目标查询刷新(替换为你的刷新逻辑,示例为刷新特定查询) ' ThisWorkbook.Queries("你的查询名称").Refresh ' 或刷新所有查询: ThisWorkbook.RefreshAll DoEvents ' 恢复用户原本的设置 ThisWorkbook.QueryOptions.EnableBackgroundDataPreview = originalPreviewState End Sub
注意事项
- 该属性支持Office 2016及以上版本的Excel
- 若只需刷新单个查询,替换
RefreshAll为指定查询的刷新代码即可,示例:ThisWorkbook.Queries("销售数据查询").Refresh
内容的提问来源于stack exchange,提问作者Carlsberg789
相关产品推荐
相关产品推荐

