Excel VBA - 将范围从一个工作表复制到另一个工作表,下一个空行

时间:2016-06-25 04:30:18

标签: excel vba

我试图从一张纸上取一个范围并将其复制到另一张纸中的下一个空行(基本上,粘贴到另一张纸中下一个空行的范围A12:D12中)。范围永远不会改变。我已经看过很多像这样的问题,人们说答案很有效,但是我无法让它发挥作用。

VBA很新。以下是我使用的代码:

Private Sub CommandButton1_Click()

    Dim NextRow As Range
    Set NextRow = Range("A" & Sheets("Sheet3").UsedRange.Rows.Count + 1)  

    Sheet1.Range("A12:D12").Copy
    Sheet3.Activate
    NextRow.PasteSpecial Paste:=xlValues, Transpose:=False
    Application.CutCopyMode = False

    Set NextRow = Nothing

End Sub

这会运行,但它实际上并未将任何值粘贴到Sheet3中。有什么我想念的吗?有更好的方法吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

您在定义NextRow的第二行中遇到了问题 有一个更好的方法吗?这取决于你的需求;我个人不喜欢在VBA宏期间激活/选择其他单元格,例如我会摆脱Sheet3.Activate。我也会手动复制这些东西'不使用剪贴板以避免更改用户的剪贴板内容。

Private Sub CommandButton1_Click()

    Dim NextRow As Range
    Set NextRow = Sheet3.Range("A" & Sheet3.Rows.Count).End(xlUp).Offset(1, 0)

    Sheet1.Range("A12:D12").Copy
    Sheet3.Activate
    NextRow.PasteSpecial Paste:=xlValues, Transpose:=False
    Application.CutCopyMode = False

    Set NextRow = Nothing

End Sub