|
▼kanabun さん:
>こんにちは。
>
>▼Copy元範囲のアドレス
>> 【sheets(1)データ】
>> 11行のデータのセル場所 【R11:Y11】,【AA11:AH11】,【AJ11:AQ11】
>> 15行のデータのセル場所 【R15:Y15】,【AA15:AH15】,【AJ15:AQ15】
>> 19行のデータのセル場所 【R19:Y19】,【AA19:AH19】,【AJ19:AQ19】
>> 23行のデータのセル場所 【R23:Y23】,【AA23:AH23】,【AJ23:AQ23】
>:
>上の4行は、こういう風にも考えられませんか?
>
>[R11]を基点として【A1:H1】,【J1:Q1】,【S1:Z1】
> 【A5:H5】,【J5:Q5】,【S5:Z5】、
>
>[R19]を基点として【A1:H1】,【J1:Q1】,【S1:Z1】
> 【A5:H5】,【J5:Q5】,【S5:Z5】、
>
>つまり、2行を1ブロックと考えると、起点セルの座標が単調増加するだけで、
>Copy範囲の相対位置はどのブロックでも同じ、ということ。
>
>'コピー先についても同じ。
>
>
>Sub Try1()
> Dim r As Range
> Dim c As Range
>
> Set r = Worksheets(1).[R11] '最初のCopyブロック基点セル
> Set c = Worksheets(2).[C5] '最初のPaste先セル
>
> Do
> BlockCopy r, c
>
> Set r = r.Offset(8) 'つぎのブロック先頭へ
> Set c = c.Offset(16)
> Loop Until r.Row > 1207
>
>End Sub
>
>Private Sub BlockCopy(ByVal r As Range, ByVal c As Range)
> With r
> .Range("A1:H1").Copy
> c.Range("A1").PasteSpecial xlValues, Transpose:=True
> .Range("J1:Q1").Copy
> c.Range("C1").PasteSpecial xlValues, Transpose:=True
> .Range("S1:Z1").Copy
> c.Range("F1").PasteSpecial xlValues, Transpose:=True
>
> .Range("A5:H5").Copy
> c.Range("I1").PasteSpecial xlValues, Transpose:=True
> .Range("J5:Q5").Copy
> c.Range("K1").PasteSpecial xlValues, Transpose:=True
> .Range("S5:Z5").Copy
> c.Range("N1").PasteSpecial xlValues, Transpose:=True
> End With
>End Sub
欲しい結果になりましたーーーーーーーー。
習熟します!!!!!!
調べてわからなかったら、また質問させてください!!!!
ありがとうざいます。!!
|
|