Excel VBA复制和粘贴循环
问题描述:
我试图复制和粘贴一系列单元格。我有单元格D1:D10,需要复制D1并粘贴A1:A20,然后移至D2并粘贴至A21:A40,依此类推。我已经通过A1:A20成功获得了D1。我不知道如何让它移动到下一个单元格。 (“CountofResponses”)等于20.Excel VBA复制和粘贴循环
Private Sub CommandButton1_Click()
Dim i As Integer
Range("D1").Select
Selection.Copy
For i = 1 To Range("CountofResponses")
Range("A" & 1 + i).Select
ActiveSheet.Paste
Next i
End Sub
答
重写此为我误解了第一部分。称为OFFSET的VBA函数就是您要查找的内容。有完成你不使用复制/粘贴总体目标的更有效的方法,但对于一个确切的答案的缘故......在这里你去:
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 1 To Range("CountofResponses")
Range("D1").Offset(i-1,0).Select
Selection.Copy
Range("A" & 1 + i).Select
'or you could use Range("A1").offset(i-1,0).Select
ActiveSheet.Paste
Next i
End Sub
答
试试这个
Private Sub CommandButton1_Click()
Dim r As Range
For Each r In Range("D1:D10")
Range("A" & 1 + (r.Row - 1) * 20).Resize(Range("CountofResponses")).Value = r.Value
Next i
End Sub