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

VBA跨工作簿复制工作表时触发Runtime Error 9错误求助

VBA Runtime Error 9 问题修复

错误原因

Runtime Error 9(下标越界)出现在Set wbSource = Workbooks(temp_path)这行,核心问题是:Workbooks集合仅包含当前Excel中已打开的工作簿,你用完整路径去访问未打开的文件,集合里找不到对应条目,因此触发报错。

解决方法

方法1:先打开源工作簿(最稳妥)

如果源工作簿未打开,必须先调用Workbooks.Open方法打开它,再赋值给变量:

ref_sheet = "111"

' 替换为真实完整的文件路径,例如 K:\Project\source_file.xlsx
temp_path = "K:\完整路径\你的文件.xlsx"

Set wbSource = Workbooks.Open(temp_path) ' 先打开目标文件
Set wbTarget = ThisWorkbook

' 执行工作表复制操作
wbSource.Sheets(ref_sheet).Copy After:=wbTarget.Sheets(wbTarget.Sheets.Count)

' 可选:操作完成后关闭源工作簿(不保存修改,可根据需求调整)
wbSource.Close SaveChanges:=False

方法2:源工作簿已打开时用文件名访问

如果确认源工作簿已经在Excel中打开,直接用文件名(而非完整路径)访问Workbooks集合:

Set wbSource = Workbooks("source_file.xlsx") ' 仅写文件名,比如"data.xlsx"

额外检查项

  • 务必把temp_path中的省略号替换为真实完整的文件路径,路径错误会直接导致打开失败。
  • 确认源文件没有被其他程序锁定(比如其他用户正在编辑),锁定状态下无法正常打开。
  • ThisWorkbook指代当前运行代码的工作簿,这个用法是正确的,无需修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 04:02:35