Excel精英培训网

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

[已解决]循环查询求和,

[复制链接]
发表于 2014-7-19 22:24 | 显示全部楼层 |阅读模式
循环查询求和,求好心人解决,谢谢
最佳答案
2014-7-20 16:32
  1. Sub Macro1()
  2. On Error Resume Next
  3. Dim arr, brr, d, i&, s&, x&
  4. Set d = CreateObject("scripting.dictionary")
  5. arr = Sheet1.Range("a1").CurrentRegion
  6. brr = Range("a6:g" & Range("a65536").End(xlUp).Row)
  7. For i = 1 To UBound(brr)
  8.     d(brr(i, 1)) = i
  9. Next
  10. For i = 3 To UBound(arr)
  11.         x = d(arr(i, 5))
  12.         brr(x, 2) = brr(x, 2) + arr(i, 2)
  13.         brr(x, 3) = brr(x, 3) + arr(i, 4)
  14.          If arr(i, 3) = "女" Then
  15.             brr(x, 4) = brr(x, 4) + arr(i, 2)
  16.             brr(x, 5) = brr(x, 5) + arr(i, 4)
  17.         Else
  18.             brr(x, 6) = brr(x, 6) + arr(i, 2)
  19.             brr(x, 7) = brr(x, 7) + arr(i, 4)
  20.         End If
  21. Next
  22. [a6].Resize(UBound(brr), UBound(brr, 2)) = brr
  23. End Sub
复制代码

循环查询求和.rar

9.67 KB, 下载次数: 26

发表于 2014-7-20 09:34 | 显示全部楼层
  1. Sub Macro1()
  2. Dim arr, brr, d, i&, s&, x&
  3. Set d = CreateObject("scripting.dictionary")
  4. Sheet1.Activate
  5. arr = Range("a1").CurrentRegion
  6. ReDim brr(1 To UBound(arr), 1 To 7)
  7. For i = 3 To UBound(arr)
  8.     If Not d.exists(arr(i, 5)) Then
  9.         s = s + 1
  10.         d(arr(i, 5)) = s
  11.         brr(s, 1) = arr(i, 5)
  12.         brr(s, 2) = arr(i, 2)
  13.         brr(s, 3) = arr(i, 4)
  14.         If arr(i, 3) = "女" Then
  15.             brr(s, 4) = arr(i, 2)
  16.             brr(s, 5) = arr(i, 4)
  17.         Else
  18.             brr(s, 6) = arr(i, 2)
  19.             brr(s, 7) = arr(i, 4)
  20.         End If
  21.     Else
  22.         x = d(arr(i, 5))
  23.         brr(x, 2) = brr(x, 2) + arr(i, 2)
  24.         brr(x, 3) = brr(x, 3) + arr(i, 4)
  25.          If arr(i, 3) = "女" Then
  26.             brr(x, 4) = brr(x, 4) + arr(i, 2)
  27.             brr(x, 5) = brr(x, 5) + arr(i, 4)
  28.         Else
  29.             brr(x, 6) = brr(x, 6) + arr(i, 2)
  30.             brr(x, 7) = brr(x, 7) + arr(i, 4)
  31.         End If
  32.     End If
  33. Next
  34. Sheet2.[a6].Resize(s, 7) = brr
  35. End Sub
  36. Sub Macro2()
  37. Dim rng As Range
  38. Sheet3.Activate
  39. Set rng = Sheet1.Columns(6).Find([b6], lookat:=xlWhole)
  40. If Not rng Is Nothing Then [e19] = rng.Row
  41. End Sub
复制代码
回复

使用道具 举报

发表于 2014-7-20 09:41 | 显示全部楼层
………………

循环查询求和.zip

13.17 KB, 下载次数: 36

回复

使用道具 举报

 楼主| 发表于 2014-7-20 12:42 | 显示全部楼层
dsmch 发表于 2014-7-20 09:34

谢谢您来了,我的意思是,问题一中的地址是固定的。不是从数据库中去取,地址最多24个,可以自己添加。能实现吗?谢谢你了
回复

使用道具 举报

 楼主| 发表于 2014-7-20 12:42 | 显示全部楼层
dsmch 发表于 2014-7-20 09:41
………………

谢谢您来了,我的意思是,问题一中的地址是固定的。不是从数据库中去取,地址最多24个,可以自己添加。能实现吗?谢谢你了
回复

使用道具 举报

 楼主| 发表于 2014-7-20 12:44 | 显示全部楼层
dsmch 发表于 2014-7-20 09:41
………………

谢谢您了,我的意思是,问题一中的地址是固定的。而不是从数据库中去取,地址最多24个,可以自己添加。能实现吗?谢谢你了
回复

使用道具 举报

发表于 2014-7-20 16:32 | 显示全部楼层    本楼为最佳答案   
  1. Sub Macro1()
  2. On Error Resume Next
  3. Dim arr, brr, d, i&, s&, x&
  4. Set d = CreateObject("scripting.dictionary")
  5. arr = Sheet1.Range("a1").CurrentRegion
  6. brr = Range("a6:g" & Range("a65536").End(xlUp).Row)
  7. For i = 1 To UBound(brr)
  8.     d(brr(i, 1)) = i
  9. Next
  10. For i = 3 To UBound(arr)
  11.         x = d(arr(i, 5))
  12.         brr(x, 2) = brr(x, 2) + arr(i, 2)
  13.         brr(x, 3) = brr(x, 3) + arr(i, 4)
  14.          If arr(i, 3) = "女" Then
  15.             brr(x, 4) = brr(x, 4) + arr(i, 2)
  16.             brr(x, 5) = brr(x, 5) + arr(i, 4)
  17.         Else
  18.             brr(x, 6) = brr(x, 6) + arr(i, 2)
  19.             brr(x, 7) = brr(x, 7) + arr(i, 4)
  20.         End If
  21. Next
  22. [a6].Resize(UBound(brr), UBound(brr, 2)) = brr
  23. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2019-10-1 00:21 | 显示全部楼层

您好,如果在两张表中查询求和,能不能实现这个功能,谢谢您,国庆节快乐。。。

在两张表中循环查询求和.rar

14.06 KB, 下载次数: 2

回复

使用道具 举报

 楼主| 发表于 2019-10-1 12:47 | 显示全部楼层

您好,在么??
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 00:25 , Processed in 0.363832 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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