用ExcelVBA实现:汇总一个Excel内的相同ID的数量之和
用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")
..CurrentRegion.Sort ., 1, Header:=xlGuess '按照产品ID排序
End With
End Sub
页:
[1]