|
▼初心者さっち さん:
>欲しい結果になりましたーーーーーーーー。
最終行はよかったですか? ちょっと自信がありません。
あと、
いま、Transpose Value のほうでテストしてみたら、全然スピードが
ちがうので、報告します。値の転記だけなら、こちらのほうがいいみたい
Sub Try2()
Dim r As Range
Dim c As Range
Set r = Worksheets(1).[R11] '最初のCopyブロック基点セル
Set c = Worksheets(2).[C5] '最初のPaste先セル
Application.ScreenUpdating = False
Do
TranspoValue r, c
Set r = r.Offset(8) 'つぎのブロック先頭へ
Set c = c.Offset(16)
Loop Until r.Row > 1207
Application.ScreenUpdating = True
Beep
End Sub
Private Sub TranspoValue(ByVal r As Range, ByVal c As Range)
With Application
c.Range("A1").Resize(8).Value = .Transpose(r.Range("A1:H1"))
c.Range("C1").Resize(8).Value = .Transpose(r.Range("J1:Q1"))
c.Range("F1").Resize(8).Value = .Transpose(r.Range("S1:Z1"))
c.Range("I1").Resize(8).Value = .Transpose(r.Range("A5:H5"))
c.Range("K1").Resize(8).Value = .Transpose(r.Range("J5:Q5"))
c.Range("N1").Resize(8).Value = .Transpose(r.Range("S5:Z5"))
End With
End Sub
ちなみに、こちらの環境では
ともに、
Application.ScreenUpdating = False/True
を入れて、
◆Try1 CopyPaste が 4.129 秒
◆Try2 TransValue が 0.367 秒 でした。
|
|