ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1371|回复: 6

[求助] 在同一工作簿内的几个表合并成一个表,并且进行汇总

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-4-20 13:54 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
有哪位老师能不能帮忙:将同一个工作簿内的几个表合并成一个表,并且在另一个表内进行汇总(用VBA)见附件

同一工簿内合并且汇总.rar

4.06 KB, 下载次数: 30

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-4-20 14:19 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-4-20 14:38 | 显示全部楼层
一任清风 发表于 2013-4-20 14:19
哪位老师帮帮忙
  1. Sub hbhz()
  2.     Set d = CreateObject("scripting.dictionary")
  3.     Set a = Sheets("汇总"): Set b = Sheets("全体")
  4.     b.Range("a3:d" & b.Range("a" & Rows.Count).End(3).Row + 1).Clear
  5.     For Each sh In Sheets
  6.         If sh.Name <> "汇总" And sh.Name <> "全体" Then
  7.             x = b.Range("a" & Rows.Count).End(3).Row + 1
  8.             y = sh.Range("a" & Rows.Count).End(3).Row
  9.             sh.Range("a3:d" & y).Copy b.Range("a" & x)
  10.         End If
  11.     Next
  12.     arr = b.UsedRange
  13.     ReDim brr(1 To UBound(arr), 1 To 4)
  14.     For i = 3 To UBound(arr)
  15.         k = Application.Match(arr(i, 4), Rows(2), 0)
  16.         If Not d.Exists(arr(i, 1)) Then
  17.             m = m + 1: d(arr(i, 1)) = m: brr(m, 1) = arr(i, 1)
  18.             brr(m, k) = 1
  19.         Else
  20.             brr(d(arr(i, 1)), k) = brr(d(arr(i, 1)), k) + 1
  21.         End If
  22.     Next
  23.     a.Range("a3").Resize(m, 4) = brr
  24.     a.[a2].Resize(m + 1, 4).Borders.LineStyle = xlContinuous
  25. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2013-4-20 14:40 | 显示全部楼层
。。。。。。。。

同一工簿内合并且汇总.rar

8.98 KB, 下载次数: 66

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-4-20 15:21 | 显示全部楼层
太感谢了,这是这个样子的

TA的精华主题

TA的得分主题

发表于 2013-4-20 18:21 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
  1. Sub test()

  2.      Dim cnn, SQL$
  3.      Set cnn = CreateObject("adodb.connection")
  4.      cnn.Open "provider=microsoft.jet.oledb.4.0;extended properties='excel 8.0;';data source=" & ThisWorkbook.FullName
  5.      For i = 3 To Sheets.Count
  6.      SQL = SQL & "select * from [" & Sheets(i).Name & "$] union all "
  7.      Next
  8.      SQL = Left(SQL, Len(SQL) - 11)
  9.      Debug.Print SQL
  10.      Sheet2.Range("a3").CopyFromRecordset cnn.Execute(SQL)
  11.      SQL1 = "transform count(手术种类) select 管理单位 from [全体$] group by 管理单位 pivot 手术种类"
  12.      Sheet1.Range("a3").CopyFromRecordset cnn.Execute(SQL1)
  13.      cnn.Close
  14.      Set cnn = Nothing
  15. End Sub

复制代码

TA的精华主题

TA的得分主题

发表于 2018-7-25 17:08 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-11 00:16 , Processed in 0.023119 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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