|
▼マリモ さん:
>まず、Sheet1の1行目を削除します。
>(2行ずつ1セットになっています。)
>Q列の1桁目を削除します。(例:3500→350)
はできているものとして、、、
これ以降、
>Sheet1E1→Sheet2B1
>Sheet1M1→Sheet2H1
>Sheet1G1(例:20110102)→Sheet2I1(23),Sheet2J1(1),Sheet2K1(2)
>Sheet1J1→Sheet2L1
>Sheet1L1→Sheet2N1
>Sheet1H1→Sheet2O1
>Sheet1K1→Sheet2P1
>Sheet1R1→Sheet2Q1
>Sheet1AB1→Sheet2R1
>Sheet1V1→Sheet2T1
>Sheet1X1→Sheet2V1
>Sheet1O1→Sheet2Z1
>Sheet1Q1→Sheet2AA1
>Sheet1Z1→Sheet2AB1
>Sheet1AF1→Sheet2AN1
>Sheet1AF2→Sheet2AO1
>Sheet1AL1→Sheet2BI1
>Sheet1AN1→Sheet2BH1
の繰り返し部分は こう書けます。
参考にしてください。
Sub Try1()
Dim c As Range, r As Range, rr As Range
Dim yy As Long
Dim ss As String
Const BH = 60
With Worksheets("Sheet1")
yy = .Cells(.Rows.Count, "AF").End(xlUp).Row
Set c = .Range("A1")
End With
With Worksheets("Sheet2")
Set rr = .Range("A1").Resize(yy \ 2, BH)
End With
For Each r In rr.Columns(1).Cells
r.Range("B1") = c.Range("E1")
r.Range("H1") = c.Range("M1")
ss = c.Range("G1").Value '(例:20110102)
r.Range("I1") = Left$(ss, 4) '-----
r.Range("J1") = Mid$(ss, 5, 2)
r.Range("K1") = Mid$(ss, 7) '-----
r.Range("L1") = c.Range("J1")
r.Range("N1") = c.Range("L1")
r.Range("O1") = c.Range("H1")
r.Range("P1") = c.Range("K1")
r.Range("Q1") = c.Range("R1")
r.Range("R1") = c.Range("AB1")
r.Range("T1") = c.Range("V1")
r.Range("V1") = c.Range("X1")
r.Range("Z1") = c.Range("O1")
r.Range("AA1") = c.Range("Q1")
r.Range("AB1") = c.Range("Z1")
r.Range("AN1") = c.Range("AF1")
r.Range("AO1") = c.Range("AF2")
r.Range("BI1") = c.Range("AL1")
r.Range("BH1") = c.Range("AN1")
Set c = c.Offset(2)
Next
End Sub
このアドレスは相対アドレスで、
たとえば Sheet1 の [B10] セルは
c が Sheet1 の[A9] であれば
c.Range("B2")
と書けることを
利用しています。
|
|