Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2041|回复: 2

[已解决]如何用VBA不重复汇总,谢谢。

[复制链接]
发表于 2016-5-9 22:08 | 显示全部楼层 |阅读模式
如何用VBA不重复汇总,谢谢。如附件
最佳答案
2016-5-9 22:51
  1. Sub Macro1()
  2. Dim arr, brr(1 To 20000, 1 To 8), d, i%, j&, s&
  3. Set d = CreateObject("scripting.dictionary")
  4. For i = 2 To Sheets.Count
  5.     arr = Sheets(i).Range("a1").CurrentRegion
  6.     For j = 2 To UBound(arr)
  7.         zf = arr(j, 1) & "," & arr(j, 2) & "," & arr(j, 3)
  8.         If Not d.exists(zf) Then
  9.             s = s + 1
  10.             d(zf) = s
  11.             brr(s, 1) = arr(j, 1)
  12.             brr(s, 2) = arr(j, 2)
  13.             brr(s, 3) = arr(j, 3)
  14.             brr(s, 8) = arr(j, 5)
  15.             brr(s, i + 2) = arr(j, 4)
  16.         Else
  17.             brr(d(zf), i + 2) = brr(d(zf), i + 2) + arr(j, 4)
  18.         End If
  19.     Next
  20. Next
  21. For i = 1 To s
  22.     brr(i, 7) = brr(i, 4) + brr(i, 5) - brr(i, 6)
  23. Next
  24. Range("a2").Resize(s, 8) = brr
  25. End Sub
复制代码

VBA-1.rar

8.19 KB, 下载次数: 37

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2016-5-9 22:51 | 显示全部楼层    本楼为最佳答案   
  1. Sub Macro1()
  2. Dim arr, brr(1 To 20000, 1 To 8), d, i%, j&, s&
  3. Set d = CreateObject("scripting.dictionary")
  4. For i = 2 To Sheets.Count
  5.     arr = Sheets(i).Range("a1").CurrentRegion
  6.     For j = 2 To UBound(arr)
  7.         zf = arr(j, 1) & "," & arr(j, 2) & "," & arr(j, 3)
  8.         If Not d.exists(zf) Then
  9.             s = s + 1
  10.             d(zf) = s
  11.             brr(s, 1) = arr(j, 1)
  12.             brr(s, 2) = arr(j, 2)
  13.             brr(s, 3) = arr(j, 3)
  14.             brr(s, 8) = arr(j, 5)
  15.             brr(s, i + 2) = arr(j, 4)
  16.         Else
  17.             brr(d(zf), i + 2) = brr(d(zf), i + 2) + arr(j, 4)
  18.         End If
  19.     Next
  20. Next
  21. For i = 1 To s
  22.     brr(i, 7) = brr(i, 4) + brr(i, 5) - brr(i, 6)
  23. Next
  24. Range("a2").Resize(s, 8) = brr
  25. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2016-5-10 07:33 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-18 08:45 , Processed in 0.666139 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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