繁体   English   中英

在另一个 Excel 实例中引用工作簿会产生“运行时错误‘9’:下标超出范围”

[英]Referencing a workbook, in another Excel instance, produces 'Run-time error '9': Subscript out of range'

我想在 Excel 的新实例中打开一个工作簿,然后将另一个(已打开)工作簿中几个不同工作表中的范围复制到新打开的工作簿中的指定范围。

这是我到目前为止所拥有的:

Dim wbl As Workbook
Set wbl = Workbooks("exports  - 27thNov.xlsm")
Dim wsl As Worksheet
Set wsl = Sheets("odbd")
Dim lrl As Long
lrl = wsl.Range("A" & Rows.Count).End(xlUp).Row

Dim wbl2 As Workbook
Set wbl2 = Workbooks("pltemplate.xlsx")
Dim wsl2 As Worksheet
Set wsl2 = wbl2.Sheets("S")

wbl.Worksheets("odbd").Range("A2:AK" & lrl).Copy
wbl2.Activate
wsl2.Range("A4").Select
wsl2.Range("A4").PasteSpecial Paste:=xlPasteValues

注意:添加了激活和选择命令以尝试强制宏以某种方式工作。

此外,我更改了目标工作簿的名称(“pltemplate.xlsx”)以使其成为更简单的字符串,以及源工作表的名称(“S”),但我收到相同的运行时错误消息.

抛出错误的行是:

Set wbl2 = Workbooks("pltemplate.xlsx")

在最后一次 OP 评论之后,解决方案是在同一个 Excel 实例中打开两个工作簿。

目标工作簿(pltemplate)已经打开,在上面的代码之前有一些代码打开了一个新的excel实例

然后,您无法在不同 Excel 实例中打开的工作簿之间执行任何操作。 每个 VBA 宏都在自己的实例中运行,因此您唯一的解决方案是在同一 excel 实例中打开两个工作簿:

Set wbl2 = Workbooks("pltemplate.xlsx")执行此行时,工作簿pltemplate.xlsx必须已在 Excel 的同一实例中打开。

如果工作簿未打开,则必须使用:

Set wbl2 = Workbooks.Open("pathtofile/pltemplate.xlsx")

有关 Excel 实例和/或相关信息的更多信息:

如何从另一个 Excel 实例引用工作簿

从 VBA 同时运行多个 Excel 实例?

打开多个 Excel 实例会导致 VBA 问题吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM