我正在尝试将数据从工作表(模板)粘贴到工作表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
(对象不支持此属性或方法)
答案 0 :(得分:2)
尝试完全限定所有对象和变量(从不假设或依赖ActiveSheet
)。
此外,Copy
>> Paste
是一行命令(不是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
答案 1 :(得分:1)
如果您只需要获取数据值,则可以使用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