粘贴最后一行的数据

我正试图将数据从工作表(模板)粘贴到A列中最后一个使用单元的工作表(主)上。

但我似乎不能得到我想要的结果。

Dim lastrow As Long If Range("a1").Value = "A" Then Sheets("Template").Range("a1:e9").Copy lastrow = Cells(Rows.Count, 1).End(xlUp).Row Sheets("Main").Range("a" & lastrow).paste End If 

错误Sheets("Main").Range("a" & lastrow).paste (对象不支持此属性或方法)

尝试完全限定所有的对象和variables(永远不要假设或依赖于ActiveSheet )。

此外, Copy >> Paste是1行命令(不是2)。 如果你想使用2行,那么将第二行改为PasteSpecial (即使在你的情况下不需要)。

 If Sheets("Template").Range("A1").Value = "A" Then lastrow = Sheets("Main").Cells(Sheets("Main").Rows.Count, 1).End(xlUp).Row Sheets("Template").Range("A1:E9").Copy Destination:=Sheets("Main").Range("A" & lastrow + 1) End If 

如果你只需要获取数据的值,那么你可以使用variant。

 Dim vDB as Variant Dim rngT As Range Dim Ws As Worksheet vDB = Sheets("Template").Range("a1:e9") Set Ws = Sheets("Main") With Ws If .Range("a1").Value = "A" Then Set rngT = .Range("a" & Rows.Count).End(xlUp)(2) ' it's lastrow +1 rngT.Resize(UBound(vDB, 1), UBound(vDB, 2)) = vDB End If End With