Excel精英培训网

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

[已解决]搞不定请帮我看下这个代码咋写

[复制链接]
发表于 2016-8-19 11:46 | 显示全部楼层 |阅读模式
请问如何通过字典的方式让sheet(原始数据)里的内容自动统计并输出到sheet(数据输出)里,万分感谢,我目前也在学习VBA,但是是个新手,搞不定阿
最佳答案
2016-8-19 12:11
  1. Sub XXX()
  2. Dim arr, Dic, brr, xrr
  3. arr = Sheet1.[a1].CurrentRegion
  4. Set Dic = CreateObject("scripting.dictionary")
  5. For a = 1 To UBound(arr)
  6.     brr = Application.Index(arr, a, 0)
  7.     If Not Dic.exists(arr(a, 1) & arr(a, 2)) Then
  8.         Dic(arr(a, 1) & arr(a, 2)) = brr
  9.     Else
  10.         xrr = Dic(arr(a, 1) & arr(a, 2))
  11.         For b = 3 To UBound(brr)
  12.             xrr(b) = xrr(b) + brr(b)
  13.         Next
  14.         Dic(arr(a, 1) & arr(a, 2)) = xrr
  15.     End If
  16. Next
  17. Sheet2.[a1].Resize(Dic.Count, UBound(xrr)) = Application.Transpose(Application.Transpose(Dic.items()))
  18. End Sub
复制代码

工作簿1.rar

8.1 KB, 下载次数: 14

发表于 2016-8-19 12:11 | 显示全部楼层    本楼为最佳答案   
  1. Sub XXX()
  2. Dim arr, Dic, brr, xrr
  3. arr = Sheet1.[a1].CurrentRegion
  4. Set Dic = CreateObject("scripting.dictionary")
  5. For a = 1 To UBound(arr)
  6.     brr = Application.Index(arr, a, 0)
  7.     If Not Dic.exists(arr(a, 1) & arr(a, 2)) Then
  8.         Dic(arr(a, 1) & arr(a, 2)) = brr
  9.     Else
  10.         xrr = Dic(arr(a, 1) & arr(a, 2))
  11.         For b = 3 To UBound(brr)
  12.             xrr(b) = xrr(b) + brr(b)
  13.         Next
  14.         Dic(arr(a, 1) & arr(a, 2)) = xrr
  15.     End If
  16. Next
  17. Sheet2.[a1].Resize(Dic.Count, UBound(xrr)) = Application.Transpose(Application.Transpose(Dic.items()))
  18. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2016-8-19 12:41 | 显示全部楼层
可能是我没有说清楚,原始数据里的A列是时间,B列是人名,C1:G1是不同类型,下面的数字是不同类型的数量,比如在8月1日张出现了3次,钱出现2次,然后在数据输出里统计8月1日张、钱不同类型的总数量,我看你这个代码跑出来的,在数据输出表里钱还是出现2次,并不是1次。
回复

使用道具 举报

发表于 2016-8-19 17:12 | 显示全部楼层
没细看吧,代码的结果与你的结果完全一样呀!
回复

使用道具 举报

 楼主| 发表于 2016-8-27 21:44 | 显示全部楼层
gufengaoyue 发表于 2016-8-19 12:11

万分感谢
回复

使用道具 举报

发表于 2016-8-28 09:52 | 显示全部楼层
看了,二楼的代码没错呀,你再细看下。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-16 04:29 , Processed in 0.358062 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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