![](/img/trans.png)
[英]How to copy and paste a column of dynamic data (as values) to another column in VBA?
[英]VBA - How to copy a column once but paste it twice?
我有一列需要复制到同一列的底部两次。 我的代码是:
Range("AQ2:AQ" & LastRow).Copy Range("AQ" & LastRow + 1)
但是,我不能只写这行两次,因为它会使行数增加四倍,而不是三倍。 例如,如果列 AQ 是 4 行,则复制和粘贴一次会得到 8 行,但是重复该行将复制和粘贴 8,因此会得到 16 行。 但是,我只想要 12 行(4 行复制一次并粘贴两次)。
谢谢
您需要做的就是粘贴两次。 但需要注意的是,您需要在第二次粘贴之前更新LastRow
。
另外值得一提的是,在编码 VBA 时,强烈建议使用工作表对象。 这将为您的程序明确定义您的工作表,并且可以在将来为您省去很多麻烦。 养成习惯:)
请参阅以下代码(未测试):
Sub CopyPaste()
Dim LastRow As Long
Dim ws As Worksheet
Set ws = Sheets("Sheet1")
'find lastrow
LastRow = ws.Range("AQ" & ws.Rows.Count).End(xlUp).Row
'copy
ws.Range("AQ2:AQ" & LastRow).Copy
ws.Range("AQ" & (LastRow + 1)).Paste
'update last row
LastRow = ws.Range("AQ" & ws.Rows.Count).End(xlUp).Row
'paste again
ws.Range("AQ" & (LastRow + 1)).Paste
'clear clipboard
Application.CutCopyMode = False
'clear ws object
Set ws = Nothing
End Sub
Sub copycopy()
Dim sh As Worksheet
Dim i As Integer
Dim lRow As Long
Dim rng As Range
Set sh = Sheets("Sheet1")
'determine range to be copied
Set rng = sh.Range(sh.Range("AQ2"), sh.Range("AQ2").End(xlDown))
'find last row
lRow = sh.Cells(Rows.Count, "AQ").End(xlUp).Row + 1
'copy range twice
For i = 1 To 2
rng.Copy Destination:=sh.Range("AQ" & lRow)
lRow = sh.Cells(Rows.Count, "AQ").End(xlUp).Row + 1
Next i
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.