|
▼M さん:
おはようございます。
まず、新規ブックにSheet1とSheet2というシート名持つシートを作成してください。
>元の表があります。これを仕上げの表のようにしたいのです。
>
>元の表 項目1 項目2 項目3 項目4 項目5
>101 AAA 500 300 200 500
>102 BBB 400 100 50 400
>104 DDD 600 0 250 600
>105 EEE 150 50 0 150
>107 FFF 600 0 0 600
>109 HHH 180 80 50 180
Sheet1のセルA1から、↑のデータが入力されているとします。
Sheet2のセルA1から、
A B
1 挿入項目 項目1
2 103 PPP
3 108 GGG
というように挿入するデータを入力します。
このように挿入するデータのありかを決めないと
繰り返し処理ができませんよね!!
標準モジュールに
'=============================================================
Sub test()
Dim strow As Long
Dim addrng As Range
With Worksheets("sheet2")
Set addrng = .Range("a2", .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 2)
End With
If addrng.Row > 1 Then
With Worksheets("sheet1")
strow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Range(.Cells(strow, 1), .Cells(strow + addrng.Rows.Count - 1, 2)).Value = addrng.Value
.Range(.Cells(strow, 3), .Cells(strow + addrng.Rows.Count - 1, 6)).Value = 0
.Range("a1", .Cells(.Rows.Count, 1).End(xlUp).Offset(0, 5)).Sort key1:=.Range("a1"), header:=xlYes
End With
End If
End Sub
testを実行してみてください。
行を逐次挿入するのではなく、追加して並べ替えました。
|
|