我正在尝试自动将数据从Workbook x Sheet 1
复制到具有值的最后一行下方的Workbook 2 Sheet 2
要复制选择:
x.Sheets("Sheet1").Range(Range("A9"), Range("A9").End(xlDown).End(xlToRight)).Copy
要粘贴选择:
y.Sheets("Sheet 2").Range("A923").PasteSpecial
每当我运行它时,都会出现Application.defined或Object.defined错误。
我似乎无法正常工作。我在做什么错了?
答案 0 :(得分:2)
Range函数需要对图纸的引用。您在第一个条目中指定了工作表,但在每个Range方法中都应提及该工作表。
请参见下面的代码:
x.Sheets("Sheet1").Range(x.Sheets("Sheet1").Range("A9"), x.Sheets("Sheet1").Range("A9").End(xlDown).End(xlToRight)).Copy
不建议您这样做,因为它会使您难以阅读代码,因此您可以将工作表保存在变量中,并进一步使用该变量,如下所示:
Dim Main_Sheet as Worksheet
Set Main_Sheet = x.Sheets("Sheet1")
Main_Sheet.Range(Main_Sheet.Range("A9"), Main_Sheet.Range("A9").End(xlDown).End(xlToRight)).Copy