ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] VBA新人求教多个工作表合并成一个工作表的VBA编写

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-3-13 17:08 | 显示全部楼层 |阅读模式
本帖最后由 cker163 于 2012-3-14 17:21 编辑

个人表格与函数操作自认还不错。。这几天突然发现VBA更牛,兴趣来了。。想把工作中长久以来一个问题用VBA来解决,特求教大家。。

详细情况如下:

EXCEL工作簿一个里面有一个“汇总“工作表 和 A B C D E F G H 等多个工作表
ABCDEGF这几个工作表里的数据都很多每个都要有几千条吧。。不过格式都一样,现在要求是全合并到”汇总“这个工作表里面去,合并后这个”汇总“表有几万条数据吧。
汇总这个表里的数据按 A B C D这几个表数据顺序排列。除”汇总和ABCD“以外的表不参与汇总。
嗯,就这些,请教各位大侠。。百度也没找到解决的方法,到是找到我们这个论坛,气氛真好。



测试表.rar (163.8 KB, 下载次数: 234)



附件已更新或到8楼下载。。

谢谢大家

TA的精华主题

TA的得分主题

发表于 2012-3-13 17:14 | 显示全部楼层
欢迎新人,上传附件,模拟结果,说明要求

补充内容 (2018-4-8 10:20):
同薄多表合并

TA的精华主题

TA的得分主题

发表于 2012-3-13 17:17 | 显示全部楼层
没有附件  提供思路,循环表格,取数据,然后复制黏贴到汇总表。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-3-13 22:27 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
感谢二、三楼大大。例子表我已经上传到一楼,不好意思,希望老大们帮助利用VBA的方法体现出来,复制粘贴太麻烦,因为数据很多,表也很多。。

TA的精华主题

TA的得分主题

发表于 2012-3-13 22:51 | 显示全部楼层
本帖最后由 mjzxlmg 于 2012-3-13 22:56 编辑
cker163 发表于 2012-3-13 22:27
感谢二、三楼大大。例子表我已经上传到一楼,不好意思,希望老大们帮助利用VBA的方法体现出来,复制粘贴太麻 ...

[code=vb]Option Explicit
Sub test()
Dim arr, brr(1 To 100000, 1 To 9), i&, j&, m&, sht As Worksheet
For Each sht In Worksheets
    If sht.Name <> "汇总" Then
       arr = sht.[a1].CurrentRegion.Value
       For i = 1 To UBound(arr)
             m = m + 1
             For j = 1 To UBound(arr, 2)
                   If j <> 1 And j <> 2 Then
                      brr(m, j) = arr(i, j)
                   Else
                      brr(m, j) = "'" & arr(i, j)
                   End If
             Next
       Next
    End If
Next
Sheets("汇总").UsedRange.ClearContents
Sheets("汇总").[a1].Resize(m, 9).Value = brr
End Sub
[/code]


测试附件:
测试表.rar (307.95 KB, 下载次数: 629)

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-3-14 15:50 | 显示全部楼层
本帖最后由 cker163 于 2012-3-14 16:46 编辑
mjzxlmg 发表于 2012-3-13 22:51
测试附件:


感谢MJZXLMG,你的代码让我受益非潜,能每行解释下意思吗?还有我实际操作的工作簿里并不是只有“汇总 A B C D E”的方式,在汇总前或后还有其它的工作表,如计算表、姓名等工作表,我把这些表放到楼主的工作簿里面后,老是提示 “运行时错误”13",类型不匹配“的错误,不论插入一个表还是多个表都是提示这个错误。

TA的精华主题

TA的得分主题

发表于 2012-3-14 16:44 | 显示全部楼层
本帖最后由 mjzxlmg 于 2012-3-14 16:53 编辑
cker163 发表于 2012-3-14 15:50
郵于第一次接觸VBA,MJZXLMG大大能按行解釋下意思嗎?看不明白。。。另外謝謝大大的支持。我已經下載試用 ...

不受数据限制,代码可以用的。只是数据量大时,把统计的数据填入单元格需要较长时间。
只有你的表的格式不一样时才修改代码。

才看到你上面所说的问题,如果工作表不止这些,要修改代码,上面代码是遍历只汇总表之外的所有工作表。你还上传原表格式,可以删除大部分数据,只留少许数据就好了。然后再上传。

另外你的数据中有很重复的数据,不知要不要处理?

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-3-14 16:48 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 cker163 于 2012-3-14 17:01 编辑
mjzxlmg 发表于 2012-3-14 16:44
不受数据限制,代码可以用的。
只有你的表的格式不一样时才修改代码。


现在插入新工作表时(因为实际工作簿表更多,并不只有”汇总+ABCD“这几个表)”提示类型不匹配“。比如说在汇总这个工作表前插入一个或多个工作表就提示这个错误。。

测试表.rar (163.8 KB, 下载次数: 276)
这个是包括完整的表,数据重复的不需要去重。。


TA的精华主题

TA的得分主题

发表于 2012-3-14 16:56 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
cker163 发表于 2012-3-14 16:48
现在插入新工作表时(因为实际工作簿表更多,并不只有”汇总+ABCD“这几个表)提示类型不匹配。

上传模拟数据,描述要汇总的是那些表,或者说不汇总是哪些表。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-3-14 17:02 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 cker163 于 2012-3-14 17:22 编辑

新的附件我上传到8楼了。。请MJZXLMG大大帮助解决下。。需要汇总的是 把A B C D  这几个表合并到”汇总“这个工作表  其它的表(如单位、用工等表)不参与汇总合并。。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-22 18:34 , Processed in 0.041504 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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