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

Excel VBA刷新数据连接触发Run-Time Error 91错误求助

解决Run-Time Error 91:刷新数据透视表连接的宏问题

你遇到的Run-Time Error 91,本质是宏录制器生成的代码过度依赖Selection对象导致的——这种写法稳定性极差,只要切换工作表时焦点不对,或者选中的区域不是目标表格,Selection.ListObject就会变成Nothing,调用.TableObject.Refresh自然就会报错。

咱们可以把代码改成直接引用对象的写法,彻底摆脱对Select和Selection的依赖,让代码更可靠:

Sub RefreshPareto() 
' 
' RefreshPareto Macro 
' 
    ' 1. 直接刷新Paretos工作表里的目标表格(替换成你的表格实际名称)
    ' 你可以在Excel中选中表格,在「表格设计」选项卡顶部找到表格名称
    Sheets("Paretos").ListObjects("Table1").TableObject.Refresh 
    
    ' 2. 刷新指定的动态连接
    ActiveWorkbook.Connections("WorksheetConnection_Work Order Tracker.xlsx!Tracker").Refresh 
    
    ' 3. 添加日期戳(直接绑定工作表,避免依赖当前激活表)
    Sheets("Paretos").Range("C30").Value = Now() 
End Sub 

关键修改说明:

  1. 移除Select和Selection:直接通过「工作表名+表格名」定位目标对象,不管当前选中什么区域,代码都能精准找到要刷新的表格
  2. 删除重复刷新操作:原代码连续调用了两次Refresh,完全没必要,保留一次即可
  3. 明确Range归属:给Range("C30")加上工作表前缀,避免当前激活表不是Paretos时写错位置

额外检查建议:

  • 确认"Paretos"工作表名称拼写完全正确(包括空格、大小写)
  • 确认表格名称:如果不知道表格名,可以在VBA编辑器的立即窗口输入?Sheets("Paretos").ListObjects(1).Name,按回车就能看到第一个表格的名称
  • 确认连接名称:在Excel「数据」选项卡→「连接」里查看连接的准确名称,确保和代码里的字符串完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:32:11