Excel精英培训网

 找回密码
 注册
查看: 1576|回复: 0

用ExcelVBA实现:汇总一个Excel内的相同ID的数量之和

[复制链接]
发表于 2017-2-3 14:57 | 显示全部楼层 |阅读模式



用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实现,里面放一个按钮。
  1. Sub zz()
  2.     Dim d, ar
  3.     Set d = CreateObject("Scripting.Dictionary") '新建一个字典
  4.     ar = Range("A1").CurrentRegion '取A1所在区域(即A1:F6)到数组ar中
  5.     For i = 2 To UBound(ar) '从第2行到最后一行循环
  6.         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存储
  7.     Next
  8.     For Each k In d.keys '遍历字典中每一个key
  9.         Sheets("Sheet1").Cells(2 + n, 1).Resize(1, 3) = Split(k, ",") '填写前三列(产品ID,产品名称,产品编码)
  10.         Sheets("Sheet1").Cells(2 + n, 4) = d(k) '预领用数量
  11.         n = n + 1 '下一行
  12.     Next
  13.     With Sheets("Sheet1")
  14.         .[A1].CurrentRegion.Sort .[A2], 1, Header:=xlGuess '按照产品ID排序
  15.     End With
  16. End Sub
复制代码





您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-19 13:28 , Processed in 0.172925 second(s), 6 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表