如何获取Excel查询的上次刷新日期时间,VBA调用代码报错如何解决
报错原因
你调用的Query - Item_Groups是Power Query(Excel「获取和转换」功能)生成的查询连接,不存在ODBCConnection属性,强行调用就会触发「应用程序定义或对象定义错误」。
解决方案
1. Power Query连接适配代码
直接替换为OLEDBConnection即可读取刷新时间:
' 写入A1单元格 Cells(1, 1) = ActiveWorkbook.Connections("Query - Item_Groups").OLEDBConnection.RefreshDate ' 存储为VBA变量 Dim lastRefreshDt As Date lastRefreshDt = ActiveWorkbook.Connections("Query - Item_Groups").OLEDBConnection.RefreshDate
2. 传统ODBC连接排查方案
如果你确认使用的是传统ODBC连接而非Power Query查询,按以下步骤排查:
- 核对连接名称完全匹配「数据」选项卡→「连接」列表中的名称,大小写、空格、特殊符号不能有出入
- 确认该连接已经完成过至少一次成功刷新,未执行过刷新的连接没有
RefreshDate属性 - 可运行以下代码输出所有连接名称,确认你要调用的连接拼写正确:
Sub ListAllConnections() Dim conn As WorkbookConnection For Each conn In ActiveWorkbook.Connections Debug.Print conn.Name Next End Sub
注意事项
如果是在代码中执行刷新后立刻读取刷新时间,需要在刷新语句后添加DoEvents等待刷新任务完成,避免读取到旧的时间值
内容的提问来源于stack exchange,提问作者Nasser Ramsis
相关产品推荐
相关产品推荐

