ID非公開

2020/8/11 14:00

11回答

シート1にあるデータをシート2に切り取りで移動させたいです。その際、A列はF列、 B列はD列、C列はK列のように並び替えをしたいです。

シート1にあるデータをシート2に切り取りで移動させたいです。その際、A列はF列、 B列はD列、C列はK列のように並び替えをしたいです。 マクロの記録をしたところ、シート1でA列をselectしてcutをしてシート2をアクティブ化させてF列に貼り付けるといったコードができていって同じようなに20行くらいできているのですが、処理を速くするために簡略化することは可能でしょうか?

Excel | Visual Basic15閲覧xmlns="http://www.w3.org/2000/svg">25

ベストアンサー

1

書式が必要なかったら値で転記してシート1はまとめてクリアすれば数十倍速いです。 シート2への書き込みは上書きでいいですね。 Sub test() Dim C As Variant, D As Variant, i As Long C = Array("F", "D", "K") With Sheets("シート1") For i = 1 To 3 D = .Range(.Cells(1, i), .Cells(Rows.Count, i).End(xlUp)).Value Sheets("シート2").Cells(1, C(i - 1)).Resize(UBound(D)) = D Next '.Columns("A:C").Clear End With End Sub クリアのところはコメントにしてあります。

1人がナイス!しています