2017-07-14 314 views
0

我试图复制和粘贴一系列单元格。我有单元格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 

回答

0

重写此为我误解了第一部分。称为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 
1

试试这个

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