You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用VBS脚本刷新Excel指定查询表?求代码修正

修正VBS脚本刷新Excel查询表的问题

错误分析

你的代码存在两个关键问题:

  • Connections 是Workbook对象的集合,不能通过Worksheet调用,正确路径应为Workbook.Connections
  • 直接调用Connection对象的Refresh方法无效,需刷新其关联的OLEDBConnection对象,或直接定位到对应QueryTable操作

修正后的脚本

Set objExcelApp = CreateObject("Excel.Application") 
objExcelApp.Visible = True
objExcelApp.DisplayAlerts = False

sFilePathXlsm = "G:\Groups\Management Equipment\CONTROLLO_VISIONI1.xlsm"
Set iWb = objExcelApp.Workbooks.Open(sFilePathXlsm)

' 方式1:刷新连接对应的OLEDBConnection(优先使用)
Set objConn = iWb.Connections("Query - VISIONI23")
objConn.OLEDBConnection.Refresh

' 方式2:直接刷新工作表中的指定查询表(若方式1无效可尝试)
' Set iWs = iWb.Sheets("VISIONI")
' Set objQueryTable = iWs.QueryTables("VISIONI23")
' objQueryTable.Refresh BackgroundQuery:=False

iWb.Save
iWb.Close
objExcelApp.DisplayAlerts = True
objExcelApp.Quit

说明

  • 方式1直接通过Workbook的Connections集合定位目标连接,刷新其底层的OLEDBConnection,适配多数查询场景
  • 方式2针对直接绑定在工作表上的QueryTable,BackgroundQuery:=False会强制等待刷新完成后再执行保存,避免未刷新完成就保存文件

内容的提问来源于stack exchange,提问作者Antonio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 10:50:24