|
▼げっち さん:こんにちは〜
>実際は1行に100以上ある入力済みのセルをコピーして、
>月単位(31日間)で区切って貼り付けたいのです。
こんな方法はどうでしょう
Sheet1に元表があって、これを Sheet2 に 31列づつCopyします。
そのとき、32列目に 連番を振っておきます。
全列コピーし終わったら、Sheet2全体を(32列目をキーにして)ソート
します。
これで指定の順に並び替えられます。
Sub Try1() 'Sheet1 → Sheet2
Dim i&, j&
Dim n&, m&
Const Stp = 31 '31列づつ
Dim wk() As Long
Dim CopyTo As Range
With Sheet2
.UsedRange.ClearContents
Set CopyTo = .Cells(1)
End With
With Sheet1.UsedRange
m = .Columns.Count
n = .Rows.Count
ReDim wk(1 To n, 1 To 1)
For i = 1 To n
wk(i, 1) = i
Next
For j = 1 To m Step Stp 'Stp列づつまとめてCopy
.Columns(j).Resize(, Stp).Copy CopyTo
CopyTo.Offset(, Stp).Resize(n).Value = wk
Set CopyTo = CopyTo.Offset(n)
Next
End With
With Sheet2.Cells(1).CurrentRegion
.Sort Key1:=.Columns(Stp + 1), Header:=xlNo'列見出しなし
.Columns(Stp + 1).Clear
End With
End Sub
|
|