|
▼tek さん:
こんにちは、個人的に基データを消去するのにためらいを覚えることと
行参照管理がめんどくさそうなので別シートに整理する形で作ってみました。
1行目が見出しで2行目以降空白無しでデータが入っているものとします。
Dictionaryを使うほうが良いのかも知れませんが、私の使いなれたもので組んでみました。
Option Explicit
Sub Macro1()
Dim i As Long, j As Long, k As Long, m As Long, n As Long
Dim 品番 As Variant, 納期 As Variant, 数量 As Variant
Dim flag As Integer
Dim WR As Variant
Dim UR As String
m = 2
ReDim WR(0)
With Worksheets("Sheet1")
k = .Range("a65536").End(xlUp).Row
For i = 2 To k
'以前ダブった行の処理を飛ばします。
flag = 0
For n = 0 To UBound(WR)
If i = WR(n) Then flag = 1
Next n
If flag = 0 Then
UR = ""
品番 = .Cells(i, 1).Value
納期 = .Cells(i, 2).Value
数量 = .Cells(i, 3).Value
For j = i + 1 To k
If .Cells(j, 1).Value = 品番 Then
If .Cells(j, 2).Value = 納期 Then
数量 = 数量 + .Cells(j, 3).Value
WR(UBound(WR)) = j
ReDim Preserve WR(UBound(WR) + 1)
UR = UR & "," & j
End If
End If
Next j
With Worksheets("Sheet2")
.Cells(m, 1).Value = 品番
.Cells(m, 2).Value = 納期
.Cells(m, 3).Value = 数量
'合計した行を記述します
.Cells(m, 5).Value = i & UR
End With
m = m + 1
End If
Next i
End With
End Sub
>A B C D
>品番 納期 数量 ロット
>: : : :
>データはその都度増加する
>
>
>上記のような表があります
>品番と納期が同じ物が会ったら数量を合計したい
>のですが、いい方法がありますでしょうか?(VBAでつくりたいのですが?)
>
>例
>品番 納期 数量 ロット
>
>13452 2009/12/15 100 4568567
>13452 2009/12/15 500 3268457
>↓
>13452 2009/12/15 600 合計値
>これを出したら上のデータ行を削除して下のデータを残したいです
>Loopさせて連続処理データ最終行でストップ
>
>品番は数種類あり納期もばらばらですが、たまに同じ品番と納期がダブルときがあり
>ます。
>投げやりになりましたが教えていただける方よろしくお願いいたします。
|
|