ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助]又一种多工作簿汇总.rar

[复制链接]

TA的精华主题

TA的得分主题

发表于 2008-9-29 23:35 | 显示全部楼层 |阅读模式

     现在我又想到了又一种新要求,数学科汇总工作簿名为"数学",在"数学科"数据源文件夹外,文件夹里有多个学校的数学科成绩,且每个学校的班级数及人数都不一样,在汇总表设置一个按扭,点击按扭所有数据都汇总到"数学"工作簿里,且按由学校1到学校3依次连续,如附件所示,也许可以从前面的汇总代码改改就可以,但我实在不懂VBA,从今天zhaogang1960老师的帮忙以后,我才真正认识到VBA的强大,对我们工作中帮助实在太大,在这里还想请在百忙中的zhaogang1960老师再次帮忙一下,小弟再次谢谢你了

S9l23P9m.rar (24.1 KB, 下载次数: 493)


TA的精华主题

TA的得分主题

发表于 2008-9-30 00:47 | 显示全部楼层

回复:(河山)[求助]又一种多工作簿汇总.rar

8HJ19vC6.rar (30.5 KB, 下载次数: 1494)
试试看

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-10-2 07:27 | 显示全部楼层
谢谢zhaogang1960兄弟,做得很好,前两天出去玩了,不得给你回复,对不起了.谢谢!!!!

TA的精华主题

TA的得分主题

发表于 2008-10-2 10:09 | 显示全部楼层

如何解读

这个VBA如何解读,能否进行注释下,使我们能够灵活运用。

Sub 汇总()
    Dim myPath$, myFile$, sht As Worksheet
    Dim arr, lr As Long, lr2 As Long
    myPath = ThisWorkbook.Path & "\数学\"
    myFile = Dir(myPath & "\*.xls")
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Range("e8:h65536").ClearContents
    With ThisWorkbook.Sheets("Sheet1")
        Do While myFile <> ""
        Workbooks.Open myPath & myFile
        For Each sht In Sheets
            lr = sht.Range("d65536").End(xlUp).Row
            lr2 = .Range("e65536").End(xlUp).Row + 1
            arr = sht.Range("d9:g" & lr).Value
            .Range("e" & lr2).Resize(UBound(arr, 1), 4) = arr
        Next
        ActiveWorkbook.Close
        myFile = Dir
        Loop
    End With
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub

TA的精华主题

TA的得分主题

发表于 2008-10-2 12:00 | 显示全部楼层

回复:(barlz)如何解读

请参考:

Sub 汇总()
    Dim myPath$, myFile$, sht As Worksheet
    Dim arr, lr As Long, lr2 As Long             '声明变量
    myPath = ThisWorkbook.Path & "\数学\"         '给路径变量赋值
    myFile = Dir(myPath & "\*.xls")               '用dir函数提取一个文件名
    Application.ScreenUpdating = False           '关闭屏幕刷新
    Application.DisplayAlerts = False            '禁用所有事件
    Range("e8:h65536").ClearContents             '清除数据区内容
    With ThisWorkbook.Sheets("Sheet1")            'with语句,下列最左边只有“.”的语句有共同的对象ThisWorkbook.Sheets("Sheet1")
        Do While myFile <> ""                     '当文件名不为空循环
        Workbooks.Open myPath & myFile            '打开“数学”目录中的一个文件
        For Each sht In Sheets                    '对这个文件的每个工作表(这里假设每个文件的工作表数不定)
            lr = sht.Range("d65536").End(xlUp).Row          '工作表d列最后一个数据单元格行号
            lr2 = .Range("e65536").End(xlUp).Row + 1        '主工作表e列最后一个空单元格
            arr = sht.Range("d9:g" & lr).Value              '将打开工作簿工作表的数据区域读入数组arr
            .Range("e" & lr2).Resize(UBound(arr, 1), 4) = arr       '数组arr写入主工作表相应数据区域
        Next                                     '继续循环打开文件的每个工作表,这里不会循环了,因为每个文件只有一张表
        ActiveWorkbook.Close                     '关闭打开的工作簿
        myFile = Dir                             '再用dir函数提取一个文件名
        Loop                                      '继续循环,重复上述过程
    End With
    Application.DisplayAlerts = True      '      启用所有事件
    Application.ScreenUpdating = True            '打开屏幕刷新
End Sub  

TA的精华主题

TA的得分主题

发表于 2008-10-19 11:33 | 显示全部楼层
好贴,留个记号。有空回过头来慢慢学习

TA的精华主题

TA的得分主题

发表于 2008-10-20 10:29 | 显示全部楼层
今天才看到此贴,真是悔之晚矣1,zhaogang1960 技术较好。

TA的精华主题

TA的得分主题

发表于 2009-5-24 10:12 | 显示全部楼层

请教5楼 zhaogang1960 的帖子

条件不变,其他功能不变,上贴中的文件夹要实现自主选择,改怎样设计呢?也就是说设计一个宏汇总某一文件夹(文件夹可任选)下多工作簿(工作簿数不固定,每工作簿的工作表数不固定,各表格式相同,记录数不同)

TA的精华主题

TA的得分主题

发表于 2009-5-30 22:49 | 显示全部楼层

回复 5楼 zhaogang1960 的帖子

请教zhaogang1960老师:
如何在此处定位到某个具体的SHEET表?我只想获取工作簿中某个特定SHEET中的内容而不是所有SHEET表。谢谢!   
myFile = Dir(myPath & "\*.xls")

TA的精华主题

TA的得分主题

发表于 2009-5-30 22:52 | 显示全部楼层
记下了,下次时间多时再上。呵呵
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-22 07:23 , Processed in 0.040945 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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