2017-08-08 12 views
-2

"Run Formula"という名前のボタンをクリックすると、I12から始まる特定のセルブロックがコピーされ、次に28行が下に移動して式がペーストされます。 I40の細胞のブロック。その後、これを150回繰り返す。 注:マクロを記録して150回コピー&ペーストすることでこの作業を行いましたが、コードを簡単に編集したいと思います。 は私が前にVBAを使用したことがないが、これは私がこれまで持っているものである:それはいくつかのタイピングを節約するためにループVBA Do While Loop Excelマクロ

Sub Button6_Click() 
    Button6_Click Macro 
    Range("I12:AG22").Select 
    Selection.Copy 
    Dim i As Integer 
    i = 0 
    Do While i < 150 
    Row 40 + i * 28 
    i = i + 1 
    Loop 
    End Sub 
+0

どのようなエラーが表示されますか? [最小限の完全かつ検証可能なサンプルを作成する方法](https://stackoverflow.com/help/mcve)を参照してください。 – jmoon

+0

あなたが投稿したコードは、あなたが記述したことをやる努力をしていません。ループは変数をインクリメントするだけです( 'Row')。その変数がインクリメントされた後は何もしないようにします。それが何かを達成するためには、何らかの形で細胞に影響を与えなければならない。あなたがコピーしたセルで何かをする努力さえありません。 –

+0

あなたが達成したい最終結果を詳細に記述してください – jsotola

答えて

1

使用aを。

また、常に任意の範囲またはセルオブジェクトに親シートを割り当てるのが習慣に取得また.Selectまたは.Activate

の使用を避けます。

Sub Button6_Click() 
'Button6_Click Macro 

Dim i As Long 

With Worksheets("Sheet1") 'Change to the name of the sheet 
    .Range("I12:AG22").Copy 
    For i = 0 to 149 
     .Cells(40 + i * 28,"I").PasteSpecial xlPasteFormulas 
    Next i 
End With 
End Sub