2017-07-14 8 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 
をお試しください
関連する問題