ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 复杂的多工作簿指定区域有数据的分表才逐一添加数据到汇总文件指定位置

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-5-16 21:05 | 显示全部楼层 |阅读模式
本帖最后由 peter-chen 于 2023-5-18 21:18 编辑

请教各位大师及大神们,请帮我用VBA程序解决一个难题,就是要首先判断表格特定区域是否符合条件,符合的才把所有数据追加到合计表的指定区域,而且要包含合计文件所在的文件夹内的所有子文件夹!谢谢!
某个文件夹下有多个相同表格的文件,包括XLS或XLSA等不同excel版本的工作薄,需要写一个有VBA代码的EXCEL的合计文件,让这个合计文件去统计该文件夹下(包括子文件夹)的所有EXCEL工作薄文件中的所有表中的A4:D15和G4:I15到合计文件中的19行后的指定列中去,其中有时会有人误操作建立新表,但是新表中A4:I15没有数据的不纳入统计拷贝数据!

其中:对应工作薄名+工作表名显示在对应19行后的非空O列内(提高难度就是生成链接可以直接打开文件),A4:A15添加到对应19行后的B列内(注意A4和B4为合并单元格),C4:C15添加到对应19行后的K列内,D4:D15添加到对应19行后的L列内,G4:G15添加到对应19行后的B列内,H4:H15添加到对应19行后的K列内,I4:I15添加到对应19行后的L列内,把合计文件所在的文件夹内所有EXCEL文件(自身除外)的表中所有A4:D15和G4:I15数据逐一追加到合计文件中19行后指定的单元格内,每次执行这个统计汇总宏代码前,都把A20:o68856内数据先清空。M,N列加通过计算得出的数值。其他数据不处理。不指定文件所在路径,不管文件在哪,只要是合计文件所有的文件夹就执行该合计文件所在路径下的所有EXCEL文件的以上数据追加汇总。


具体分表见附件,预计出来的结果看总表(合计.xlsm),谢谢各位老师的指导。



补充内容 (2023-5-20 10:23):
新附件见21楼,谢谢,O列除了显示文件名和表名,还自动生成链接,方便有问题可以直接打开查看

test4-excelhome.rar

130.49 KB, 下载次数: 18

TA的精华主题

TA的得分主题

发表于 2023-5-16 21:21 | 显示全部楼层

需求写的很详细,类似的要求往贴也很多,我把前天写的类似代码发给你参考

Sub 汇总()
Application.ScreenUpdating = False
lj = ThisWorkbook.Path & ""
With Sheets("汇总表")
    .Rows("6:200000").Clear
    f = Dir(lj & "*.xls*")
    Do While f <> ""
        If f <> ThisWorkbook.Name Then
            Set wb = Workbooks.Open(lj & f, 0)
            Set sht = wb.Worksheets(1)
            r = sht.Cells(Rows.Count, 2).End(xlUp).Row
            If r >= 5 Then
                rs = .Cells(Rows.Count, 2).End(xlUp).Row + 1
                If rs < 6 Then rs = 6
                sht.Rows("6:" & r).Copy .Cells(rs, 1)
            End If
            wb.Close False
        End If
    f = Dir
    Loop
End With
分类排序
Application.ScreenUpdating = True
MsgBox "ok!"
End Sub
Sub 分类排序()
Sheets("汇总表").Rows.Copy Sheets("按行业汇总").[a1]
With Sheets("按行业汇总")
    r = .Cells(Rows.Count, 2).End(xlUp).Row
    .Rows("6:" & r).Sort [D5], Header:=xlNo
End With
Sheets("汇总表").Rows.Copy Sheets("按产值汇总").[a1]
With Sheets("按产值汇总")
    r = .Cells(Rows.Count, 2).End(xlUp).Row
    .Rows("6:" & r).Sort [e5], Header:=xlNo
End With
Sheets("汇总表").Rows.Copy Sheets("按增长率").[a1]
With Sheets("按增长率")
    r = .Cells(Rows.Count, 2).End(xlUp).Row
    .Rows("6:" & r).Sort [g5], Header:=xlNo
End With
End Sub


TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-16 22:50 | 显示全部楼层
试图如下,希望得到解答和指点,谢谢

工作薄1内的3个分表符合

工作薄1内的3个分表符合

工作薄N内的2个分表符合

工作薄N内的2个分表符合

工作薄N内的某个分表不符合--无数据

工作薄N内的某个分表不符合--无数据

合计表实现的结果

合计表实现的结果

文件夹又子文件夹视图-子文件夹含工作薄

文件夹又子文件夹视图-子文件夹含工作薄

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-17 10:25 | 显示全部楼层
吴中泉 发表于 2023-5-16 21:21
需求写的很详细,类似的要求往贴也很多,我把前天写的类似代码发给你参考

Sub 汇总()

谢谢,你这个应该是整行拷贝,我那个是指定区域拷贝到指定单元格,其他单元格还是有其他自身数据的

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-17 10:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
吴中泉 发表于 2023-5-16 21:21
需求写的很详细,类似的要求往贴也很多,我把前天写的类似代码发给你参考

Sub 汇总()

请把你这个代码的原帖子发下,谢谢,我看下你的附件

TA的精华主题

TA的得分主题

发表于 2023-5-17 11:13 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
peter-chen 发表于 2023-5-17 10:27
请把你这个代码的原帖子发下,谢谢,我看下你的附件

请参考这个帖子,也许能帮你。你这表有点麻烦,大师们也不想弄啊!

https://club.excelhome.net/thread-1662829-1-1.html

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-17 14:25 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
吴中泉 发表于 2023-5-17 11:13
请参考这个帖子,也许能帮你。你这表有点麻烦,大师们也不想弄啊!

https://club.excelhome.net/threa ...

其实不麻烦,就是固定位置,现在难的是怎么把所有工作薄里的表都加上去,但是不同格式的不加(或某些区域没有数据的不加),就是要细化,还要把文件名和表名显示出来。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-17 14:32 | 显示全部楼层
吴中泉 发表于 2023-5-16 21:21
需求写的很详细,类似的要求往贴也很多,我把前天写的类似代码发给你参考

Sub 汇总()

由于固定区域的数据是相当于分栏,那么执行2次遍历范围的行应该可以处理好数据了,但是我卡在了子文件夹无法统计、无法把每个工作薄里的所有符合要求的表都拷贝出来,手工就太麻烦了,毕竟有至少60个以上的工作薄

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-18 10:26 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-5-18 14:04 | 显示全部楼层
吴中泉 发表于 2023-5-16 21:21
需求写的很详细,类似的要求往贴也很多,我把前天写的类似代码发给你参考

Sub 汇总()

附件在哪?麻烦你发来。谢谢!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-29 02:16 , Processed in 0.041703 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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