Excel精英培训网

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

[已解决]请大师大侠帮我在这汇总出结果末位置生成合计

[复制链接]
发表于 2012-1-8 15:14 | 显示全部楼层 |阅读模式

请大师大侠帮我在这汇总出结果末位置生成合计
Book2.rar (18.55 KB, 下载次数: 16)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-1-8 19:51 | 显示全部楼层    本楼为最佳答案   

  1. Sub 汇总2_Click()
  2.     Range("W10:AC65535").ClearContents
  3.     Dim intRow As Long, t As Single
  4.     Dim ARow As Integer, SQdate As String
  5.     Dim arr1, arr2, i As Long
  6.     t = Timer
  7.     Dim cn As New ADODB.Connection, sql As String

  8.     SQdate = "WHERE "
  9.     If Len([X3]) > 0 And Len([Z3]) > 0 Then SQdate = SQdate & "日期 between # " & [X3] & " # AND #" & [Z3] & "# AND "
  10.     For Each Ran In Range("W6:Y6")
  11.         If Len(Ran) > 0 Then SQdate = SQdate & Ran.Offset(-1) & "='" & Ran & " ' AND "
  12.     Next
  13.     If Len(SQdate) = 6 Then
  14.         SQdate = ""
  15.     Else
  16.         SQdate = Left(SQdate, Len(SQdate) - 5)
  17.     End If
  18.     cn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName
  19.     sql = "select 客户,总帐科目,sum(借方),sum(贷方),sum(借方-贷方),分类 from [sheet1$C9:V" & intRow & "]" & _
  20.           SQdate & "GROUP BY 客户,总帐科目,分类"
  21.     Sheet1.Range("W10").CopyFromRecordset cn.Execute(sql)    '导出数据
  22.     cn.Close
  23.     Set cn = Nothing
  24.     arr1 = Range("Y10:AA" & [Y65536].End(xlUp).Row)
  25.     ReDim arr2(1 To 1, 1 To 3)
  26.     For i = 1 To 3
  27.         arr2(1, i) = Application.Sum(Application.Index(arr1, , i))
  28.     Next i
  29.     Range("Y" & [Y65536].End(xlUp).Row + 1).Resize(1, 3) = arr2
  30.     MsgBox "汇总完成-共用:" & (Timer - t) * 1000 & "毫秒"
  31. End Sub
复制代码

回复

使用道具 举报

 楼主| 发表于 2012-1-9 12:17 | 显示全部楼层
sunjing-zxl 发表于 2012-1-8 19:51

老师,请问在合计金额的前面X列,添加(合计)两个字怎么加?
回复

使用道具 举报

发表于 2012-1-9 12:40 | 显示全部楼层
加在msgbox 前面一行
Range("X" & [Y65536].End(xlUp).Row) = "合计"
MsgBox "汇总完成-共用:" & (Timer - t) * 1000 & "毫秒"
End Sub

回复

使用道具 举报

 楼主| 发表于 2012-1-9 15:22 | 显示全部楼层
本帖最后由 excel010 于 2012-1-9 15:23 编辑
sunjing-zxl 发表于 2012-1-9 12:40
加在msgbox 前面一行
Range("X" & [Y65536].End(xlUp).Row) = "合计"
MsgBox "汇总完成-共用:" & (Timer ...


老师又遇到1个问题还请帮忙看看

刚刚那张表格中计算余额的问题

http://www.excelpx.com/thread-218917-1-1.html
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 00:28 , Processed in 0.306248 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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