2017-08-06 7 views
1

マクロをドラッグして列を下ろそうとしています。私はちょうど列をドラッグするマクロを記録しました。私が持っているすべての列をドラッグするループを置く方法はありますか?VBAでさまざまな列をループする方法

私はこれに何かを考え出しましたが、うまくいきません。このコードは、最初の列をドラッグした直後に機能しなくなります。

Sub Macro3() 
    ' 
    ' Macro3 Macro 
    ' 
    For i = 1 To 100 

     Selection.AutoFill Destination:=ActiveCell.Range("A1:A4") 
     ActiveCell.Range("A1:A4").Select 
    Next i 
End Sub 

私はそれが私が持っているすべての100の列で動作させることができますか?私はこれを学びたいと思っているので、私はどんな助けにも感謝します。

+0

[OK]をクリックすると、列Aから列CVまで「ドラッグダウン」したいと考えています(ただし、100行または1行目に多く入力しています)。どのくらい遠くにドラッグするかを決定するものは何ですか?常に1:4の行ですか? – Jeeped

+0

はい通常は固定数です。しかし必ずしも4ではない。 –

答えて

2

スイッチを.FillDownに変更して一気に実行します。

dim rws as long 
rws = 4 
with worksheets("sheet1") 
    with .range(.cells(1, "A"), .cells(1, .columns.count).end(xltoleft)) 
     .resize(rws ,.columns.count).filldown 
    end with 
end with 

合計の行数にrwsを設定するか、または行の合計数を決定する他の方法を見つけてください。

+0

ありがとう本当に助けていただきありがとうございます。私のコードでどこが間違っているのか、それをどのように動作させるのか教えてください。私は何かをするためのマクロを記録し、Forループを入れることができたという印象を受けました。間違った方向に向いていますか? –

+0

同じA1:A4セルで同じ.AutoFill操作を100回実行しました。私はActiveCell.Offset(0、1)を使用することを検討します。あなたのコードを修正しなかったので、 'bad practice'を選択してください。 [Excel VBAマクロでの選択の使用を避ける方法](https://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros)を参照してください。 IMHOが間違ったやり方であることを修正する意味がありません。 – Jeeped

+0

ありがとうございます。私は今、いくつかの読書をする必要があると思う。他のすべての列を下にドラッグしたい場合、このコードを変更するにはどうすればよいですか? –

関連する問題