Excel精英培训网

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

[已解决]急,在线等,请高手指教 如何 用VBA 实现以下分类汇总

[复制链接]
发表于 2011-6-21 22:05 | 显示全部楼层 |阅读模式
本帖最后由 yangxmqj 于 2011-6-21 22:25 编辑

各位高手,
    本菜鸟初接触VBA ,正在学习中,现碰到一个问题,请高手不吝赐教
表格如下:
   客户号        日期        金额 
000545        2011-7-1        123.00
015751        2010-5-2        12.00
158585        2011-7-2        12582.00
现在想用两个文本框 输入开始日期及结束日期 再用一个文本框 输入金额 然后查询出以下结果:在开始及结束日期范围内,对客户号进行分类后金额汇总 然后将汇总金额大于文本框中所输入的金额的记录逐条放在一张表中。要如何实现呢?谢谢!详细见附件(附件中SHEET1为数据,SHEET为结果)
最佳答案
2011-6-21 23:16
回复 yangxmqj 的帖子

Book1.rar (15.46 KB, 下载次数: 94)

Book1.rar

10.45 KB, 下载次数: 24

发表于 2011-6-21 23:10 | 显示全部楼层
回复 yangxmqj 的帖子

框框不用那么多嘛。b3放的是开始日期,b4放的是结束日期,b5放的是金额:
Sub hz()
Dim sjy(), jg()
Dim sdate As Date, edate As Date, je As Double
Dim d As Object, r1 As Integer, r2 As Integer
Set d = CreateObject("scripting.Dictionary")
With Sheet1
  r1 = .Cells(.Rows.Count, 1).End(xlUp).Row
  sjy = .Range("a2:c" & r1).Value
  ReDim jg(1 To r1, 1 To 3)
End With
With Sheet2
   sdate = .[b3].Value
   edate = .[b4].Value
   je = .[b5].Value
   For r1 = 1 To UBound(sjy)
      If sjy(r1, 2) >= sdate And sjy(r1, 2) <= edate Then
         If Not d.Exists(sjy(r1, 1)) Then d(sjy(r1, 1)) = d.Count + 1
         jg(d(sjy(r1, 1)), 1) = sjy(r1, 1)
         jg(d(sjy(r1, 1)), 2) = sjy(r1, 2)
         jg(d(sjy(r1, 1)), 3) = sjy(r1, 3) + jg(d(sjy(r1, 1)), 3)
      End If
   Next
   For r1 = 1 To d.Count
      If jg(r1, 3) >= je Then
         r2 = r2 + 1
         jg(r2, 1) = jg(r1, 1)
         jg(r2, 2) = jg(r1, 2)
         jg(r2, 3) = jg(r1, 3)
      End If
   Next
   .Rows("10:65536").ClearContents
   .[b10].Resize(r2, 3) = jg
End With
End Sub

重复发贴看遭罚[em07]
回复

使用道具 举报

发表于 2011-6-21 23:16 | 显示全部楼层    本楼为最佳答案   
回复 yangxmqj 的帖子

Book1.rar (15.46 KB, 下载次数: 94)
回复

使用道具 举报

 楼主| 发表于 2011-6-23 21:19 | 显示全部楼层
谢谢楼上两位的回答,我觉得3楼的答案更简洁点,就把最佳给了3楼。再次对楼上两位的回答表示衷心的感谢!!!
回复

使用道具 举报

 楼主| 发表于 2011-6-23 22:14 | 显示全部楼层
不好意思,我没看清,应该是雪日骄阳的答案才是正确的,我弄错了,天马的答案没有对金额进行汇总,而且我表格中所需要的结果也设计得有问题,在结果区不需要设置日期栏的........
回复

使用道具 举报

发表于 2011-6-24 07:45 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-15 21:29 , Processed in 0.267942 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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