|
用ExcelVBA实现:汇总一个Excel内的相同ID的数量之和
最简化后的表格:
A B C D
1 订单号 产品ID 数量 备注
2 PO0001 ID01 8 备注说明1
3 PO0002 ID03 6 备注说明2
4 PO0002 ID01 3 备注说明3
5 PO0003 ID02 7 备注说明4
6 …… …… …… ……
需要汇总 产品ID相同的产品,数量之和。用VBA实现,里面放一个按钮。
- Sub zz()
- Dim d, ar
- Set d = CreateObject("Scripting.Dictionary") '新建一个字典
- ar = Range("A1").CurrentRegion '取A1所在区域(即A1:F6)到数组ar中
- For i = 2 To UBound(ar) '从第2行到最后一行循环
- d(ar(i, 3) & "," & ar(i, 2) & "," & ar(i, 4)) = d(ar(i, 3) & "," & ar(i, 2) & "," & ar(i, 4)) + Val(ar(i, 5)) '把产品ID,产品名称,产品编码作为key存储
- Next
- For Each k In d.keys '遍历字典中每一个key
- Sheets("Sheet1").Cells(2 + n, 1).Resize(1, 3) = Split(k, ",") '填写前三列(产品ID,产品名称,产品编码)
- Sheets("Sheet1").Cells(2 + n, 4) = d(k) '预领用数量
- n = n + 1 '下一行
- Next
- With Sheets("Sheet1")
- .[A1].CurrentRegion.Sort .[A2], 1, Header:=xlGuess '按照产品ID排序
- End With
- End Sub
复制代码
|
|