我收到运行时错误'1004':对象'_Worksheet'的方法'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作为对象时,复制不是允许的属性吗?
答案 0 :(得分:0)
如果没有指定,则无法使用其他工作簿的ActiveCell
。
尝试:
With sh2
.Range(.ActiveCell.Offset(0, 1), .ActiveCell.Offset(0, 3)).Copy
End With
编辑:
我没有尝试上面的代码,如果它不起作用,请尝试替换:
sh2.Range("A7").Select
sh2.Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 3)).Copy
with:
sh2.Range(sh2.Range("A7").Offset(0, 1), sh2.Range("A7").Offset(0, 3)).Copy
EDIT2:
另请注意,.Copy
方法具有Destination
参数,该参数可以位于不同的工作簿中。阅读MSDN Range.Copy Method Reference。