打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
使用VBA合并工作表
userphoto

2022.07.27 四川

关注

从多个Excel工作表(子工作表)中获取信息,并用子工作表中的所有数据填充汇总工作表(父工作表),这是很多朋友会提到的常见要求。如果部分数据是从添加新工作表到工作簿中而增长的,那么获得这些数据的汇总非常方便,例如,添加单独的工作表,包含新月份的数据。

将新工作表信息添加到汇总工作表的一种非常快速的方法是遍历工作簿中的所有工作表,使用VBA合并数据。如下图1所示(示例来源于thesmallman.com),有4个工作表(EnglandScotlandWalesNorthernlreland)和一个汇总工作表(Summary),要将EnglandScotlandWalesNorthernlreland工作表合并到Summary工作表中。
1

工作表中的结构如下图2所示。
2

数据必须从所有子表输入到上图2中的绿色区域。

这里的技巧是过程运行时排除汇总表,以便仅将子表或原始数据复制到汇总表中。下面VBA程序将执行此操作:
Sub Combine1()
    Dim ws As Worksheet
    Dim sh As Worksheet

    Application.ScreenUpdating = False
    Set sh = Sheet5 ' Summary工作表
    sh.Range('A11:D1000').Clear

    For Each ws In Sheets
        If ws.Name <> 'Summary' Then
            ws.Range('A2', ws.Range('D' & Rows.Count).End(xlUp)).Copy _
            sh.Range('A' & Rows.Count).End(xlUp)(2)
        End If
    Next ws
    Application.ScreenUpdating = True
End Sub

以上是基于希望使用当前文件中的所有数据更新Summary工作表的前提,还假设Summary工作表中有标题。上面的过程首先将清除Summary工作表,但标题保持不变,以便将新数据粘贴到该工作表中。

此外,还可以将多个工作表中的数据复制到Summary工作表中某个单元格区域的底部。如果Summary工作表中有以前的信息,或者希望保留汇总工作表中原来的信息,则可以使用下面的程序:
Sub Combine2()
    Dim ws As Worksheet
    Dim sh As Worksheet

    Set sh = Sheet5

    For Each ws In Sheets
        If ws.Name <> 'Summary' Then
            ws.Range('A2', ws.Range('D' & Rows.Count).End(xlUp)).Copy _
            sh.Range('A' & Rows.Count).End(xlUp)(2)
        End If
    Next ws
End Sub

如果要在汇总数据时排除多个工作表,可以将And语句与If语句结合使用:
Sub Combine3()
    Dim ws As Worksheet
    Dim sh As Worksheet

    Set sh = Sheet5

    For Each ws In Sheets
        If ws.Name <> 'Summary' And ws.Name <> 'shName' And ws.Name <> 'shName2' Then
            ws.Range('A2', ws.Range('D' & Rows.Count).End(xlUp)).Copy _
            sh.Range('A' & Rows.Count).End(xlUp)(2)
        End If
    Next ws
End Sub

这样,除了Summary工作表外,shNameshName2工作表中的数据也不会被汇总。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
300个工作簿里的2000个表复制到一个总表,你要15个小时,我只需要3分钟!
将当前工作表的数据保存为以逗号分隔的文本文件(2)
神奇的Excel VBA系列之:制作工作表目录
12、JS类应用实例之拆分数据到工作表或工作簿
UC头条:PythonExcel文件
快速保护所有工作表或撤消所有工作表保护
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服