Vba 跨多个工作簿/实例工作1004错误

Vba 跨多个工作簿/实例工作1004错误,vba,copy,instances,Vba,Copy,Instances,我收到运行时错误“1004”:对象“\u工作表”的方法“Ranger”在以下代码中失败 Public sh2 As Worksheet Public sh1 As Worksheet Public wb1 As Workbook Public OtherWB As Object Sub Test() Set wb1 = ThisWorkbook Set OtherWB = GetObject("C:\OtherWB.xlsm") Set sh1 = wb1.Worksheets("Sheet

我收到运行时错误“1004”:对象“\u工作表”的方法“Ranger”在以下代码中失败

Public sh2 As Worksheet
Public sh1 As Worksheet
Public wb1 As Workbook
Public OtherWB As Object

Sub Test()

Set wb1 = ThisWorkbook
Set OtherWB = GetObject("C:\OtherWB.xlsm")
Set sh1 = wb1.Worksheets("Sheet1")
Set sh2 = OtherWB.Worksheets("Sheet1")

sh2.Range("A7").Select
sh2.Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 3)).Copy
sh1.Range("c8").PasteSpecial xlPasteAll

End Sub

基本上,我想从另一个Excel实例中打开的OtherWB.xlsm复制并粘贴到当前工作簿。第二个实例在这里是必需的,因为系统使用多个监视器。我可以提取单元格数据,其他属性没有问题,但当涉及到使用“复制”时,事情就有点乱了。将Excel woorkbooks用作对象时,复制是不允许的属性吗?

如果未指定,则不能使用其他工作簿的
ActiveCell

尝试:

编辑:

我没有尝试上面的代码,如果它不起作用,请尝试替换:

sh2.Range("A7").Select
sh2.Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 3)).Copy
与:

sh2.Range(sh2.Range("A7").Offset(0, 1), sh2.Range("A7").Offset(0, 3)).Copy
EDIT2:


还要注意,
.Copy
方法有一个
目标
参数,可以在不同的工作簿中。阅读。

哪一行有错误?sh2.Range(ActiveCell.Offset(0,1),ActiveCell.Offset(0,3))。复制它让我选择单元格。阅读。也许会有帮助不,没有。不过谢谢。我尝试在实例之间复制得到了wierd结果。这确实起作用了:
sh1.Range(“c8”).Resize(1,3).Value=sh2.Range(“B7”).Resize(1,3).Value
sh2.Range(sh2.Range(“A7”).Offset(0,1),sh2.Range(“A7”).Offset(0,1),sh2.Range(“A7”).Offset(0,3))。复制目标:=sh1.Range(“c8”)Range类的复制方法失败。现在我看到了,这是有道理的;复制的范围与目标范围的大小不同。尝试:sh2.Range(sh2.Range(“A7”)。偏移量(0,1),sh2.Range(“A7”)。偏移量(0,3))。复制目标:=sh1.Range(sh1.Range(“C8”),sh1.Range(“C10”))返回的时间不太长,将能够从那里进行检查/测试。
sh2.Range(sh2.Range("A7").Offset(0, 1), sh2.Range("A7").Offset(0, 3)).Copy