|
さて、話が「グループ別集計作業」に戻りますが、
グループ別に集計するには Dictioanryオブジェクト
というものを使うといいです。
いま、以下のようなテーブルがあったとします。
'---------------
A B
'コード 数量
'123 10
'456 10
'123 10
'789 10
'123 10
Sub Try_Dic()
Dim ColA As Range
Dim v
Dim ss As String
Dim i As Long
Dim dic As Object
Set dic = CreateObject("Scripting.Dictionary")
Set ColA = Range("A2", Cells(Rows.Count, 1).End(xlUp))
v = ColA.Resize(, 2).Value 'A,B列のデータ
For i = 1 To UBound(v)
ss = v(i, 1) '同じKey(コード)に Item(数量)を加えていく
dic(ss) = dic(ss) + v(i, 2)
Next
'集計結果を新しいシートに書き出す
With Worksheets.Add(After:=ActiveSheet)
.Range("A2").Resize(dic.Count, 2).Value = _
Application.Transpose(Array(dic.Keys, dic.Items))
End With
End Sub
' ------------ 結果はこうなります
'123 30
'456 10
'789 10
キー(グループ名)がはじめから分かっているばあい、
キー別集計作業は 上のように Dictionaryを使うと簡単にできます。
|
|