在最后一行粘贴数据

时间:2017-06-27 08:14:17

标签: excel excel-vba vba

我正在尝试将数据从工作表(模板)粘贴到工作表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(对象不支持此属性或方法)

2 个答案:

答案 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