|
▼SS さん:
早速返事ありがとうございました少し自分の希望に近い形に変更させてもらい
動かしたところうまくいきました。ありがとうございました。
tek
>▼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させて連続処理データ最終行でストップ
>>
>>品番は数種類あり納期もばらばらですが、たまに同じ品番と納期がダブルときがあり
>>ます。
>>投げやりになりましたが教えていただける方よろしくお願いいたします。
|
|