|
初心者 さん、こんにちわ。
>で計算式をコピーして列に出したいのですが、なぜか横にコピーしてしまいます。
>なぜでしょうか?
>行 = Columns(2).CurrentRegion.Rows.Count
↑たとえば行 = 5 だとして
>Selection.Copy
>Columns(2).Select
↑この行は意味がない(次でまたSelectしてるから)からパス
>Range(Cells(3, 2), Cells(行)).Select
↑Cells(3,2) = B3セル
Cells()の引数がひとつの時、インデックス値は左上端から右に向かって連番になっているので、シート上の 5 番目のセルはE1になります。
行が 5 の時は、Cells(5)="E1"セルを示すので、指定範囲のアドレスは B1:E3
>ActiveSheet.Paste
Selectは使わなくても、処理できます。
たとえば、B列の数式をC列にコピーしたいときは、
Columns(2).Copy Destination:=Columns(3)
Sheet1のB1セルの数式をSheet2のC1:C15にコピーしたいときは、
With Worksheets("Sheet2")
Worksheets("Sheet1").Cells(1, 2).Copy Destination:=.Range(.Cells(1, 3), .Cells(15, 3))
End With
|
|