我试图从一张纸上取一个范围并将其复制到另一张纸中的下一个空行(基本上,粘贴到另一张纸中下一个空行的范围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
中。有什么我想念的吗?有更好的方法吗?
谢谢!
答案 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