在VBA excel中多次复制一个范围到另一个范围的代码

我已经写了下面的代码复制粘贴范围w21:W1759到范围AD21:

Sub CommandButton1_Click() Dim i As Integer, j As Integer For j = 1 To Range("d7") Range("d8") = j 'Calculate Range("w21:W1759").Select Selection.Copy Range("AD21").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Next j End Sub 

我在范围w21:W1759中的数据被设置为每次点击都会改变(由于随机采样),我希望这个范围内的新数据被复制并粘贴到范围“ae”(相邻列)。 然后在下一个点击“af”等等。 我需要添加什么代码才能达到上述目的?

非常感谢您的帮助

这将取决于列AC的权利。 如果列Ad是第一个空列,那么它很容易复制到。 后续的复制操作可以使用相同的下一个空列方法来填充AE,AF等列。

 Sub CommandButton1_Click() Dim i As Long, j As Long With Worksheets("Sheet1") For j = 1 To .Range("d7") .Range("d8") = j .Calculate With .Range("w21:w1759") .Parent.Cells(21, Columns.Count).End(xlToLeft).Offset(0, 1).Resize(.Rows.Count, .Columns.Count) = .Value End With Next j End With End Sub 

我已将您的“复制”,“粘贴特定值”方法更改为直接值转移。 这是更快,不涉及剪贴板。