打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Excel 用VBa数组和字典求四条件同一时,所对应的1至12月,各自相对应的汇总数字
Sub zzz()
Sheets("要答案的工作表").Activate
Dim d, arr, brr, i, j, x, y, s$
Set d = CreateObject("scripting.dictionary")
arr = Sheets("原始数据").[a1].CurrentRegion.Value
x = UBound(arr, 2): y = UBound(arr)
brr = [a1].CurrentRegion.Value
For i = 2 To y
  For j = 6 To x
    s = arr(i, 2) & arr(i, 3) & arr(i, 4) & arr(i, 5) & arr(1, j)
    d(s) = d(s) + arr(i, j)
  Next
Next
For i = 2 To UBound(brr)
  For j = 6 To x
    s = brr(i, 2) & brr(i, 3) & brr(i, 4) & brr(i, 5) & brr(1, j)
    brr(i, j) = d(s)
  Next
Next
[a1].Resize(UBound(brr), x) = brr
End Sub
*****************************
  1. Sub yyy()
  2. Sheets("要答案的工作表").Activate
  3. Dim d, arr, brr, i, j, m, n, x, y
  4. Set d = CreateObject("scripting.dictionary")
  5. arr = Sheets("原始数据").[a1].CurrentRegion.Value
  6. x = UBound(arr, 2): y = UBound(arr)
  7. ReDim brr(1 To y, 1 To x)
  8. For i = 2 To y
  9.   s = arr(i, 2) & arr(i, 3) & arr(i, 4) & arr(i, 5)
  10.   d(s) = Array(Empty, arr(i, 2), arr(i, 3), arr(i, 4), arr(i, 5))
  11. Next
  12. [a2].Resize(d.Count, 5) = Application.Rept(d.items, 1)
  13. d.RemoveAll
  14. brr = [a1].CurrentRegion.Value
  15. For i = 2 To y
  16.   For j = 6 To x
  17.     s = arr(i, 2) & arr(i, 3) & arr(i, 4) & arr(i, 5) & arr(1, j)
  18.     d(s) = d(s) + arr(i, j)
  19.   Next
  20. Next
  21. For i = 2 To UBound(brr)
  22.   For j = 6 To x
  23.     s = brr(i, 2) & brr(i, 3) & brr(i, 4) & brr(i, 5) & brr(1, j)
  24.     brr(i, j) = d(s)
  25.   Next
  26. Next
  27. [a1].Resize(UBound(brr), x) = brr
  28. End Sub
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
[练习] 两表对比
30,多工作簿汇总(GetObject)
Excel 论坛中找到拆分工作表的代码,保留了原表的格式。求助同时保留公式
带您走进VBA数组6
多表金额汇总
【Excel VBA】用字典处理多条件查...
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服