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 。 有什么我失踪? 有一个更好的方法吗?

谢谢!

你在第二行定义NextRow遇到了一个问题。
有一个更好的方法吗? 这取决于你的需求; 我个人不喜欢在VBAmacros期间激活/select其他单元格,例如我将摆脱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