当前位置:首页 > VBA&EXCEL > 一键汇总各分表数据到总表

一键汇总各分表数据到总表

九天狼6年前 (2019-05-28)VBA&EXCEL16390

写在头部的,如果你是要查学习强国题库的,请点这里


诸君,下午好。

今天和大家分享的是VBA常用小代码系列第五篇:一键汇总各分表数据到总表。

照例举个栗子,如下图,一个工作簿,包含多个工作表,现在需要将各个分表的数据汇总到总表中。

碰到这样的问题,有些小伙伴会想到使用数据透视表或者合并计算等方式进行操作。

但这两种操作方式都有它的局限性。

比如说,它们是统计汇总数据而不是汇总明细记录;另外,当标题行或列是多行(多列),甚至存在合并单元格时,它们也就无能无力了,等等。

代码一两行,工作不用愁断肠。面对这样的情况,VBA小代码解决方案如下:

代码如下:

Sub CollectData()
    'VBA编程学习与实践,一键多表数据汇总
    Dim Sht As Worksheet, Rng As Range, k&, n&
    Application.ScreenUpdating = False
    '取消屏幕更新,加快代码运行速度
    n = Val(InputBox("请输入标题的行数", "提醒"))
    If n < 0 Then MsgBox "标题行数不能为负数。", 64, "提示": Exit Sub
    '取得用户输入的标题行数,如果为负数,退出程序
    Cells.ClearContents
    '清空当前表数据
    For Each Sht In Worksheets
    '遍历工作表
        If Sht.Name <> ActiveSheet.Name Then
        '如果工作表名称不等于当前表名则进行汇总动作……
            Set Rng = Sht.UsedRange
            '定义rng为表格已用区域
            k = k + 1
            '累计K值
            If k = 1 Then
            '如果是首个表格,则K为1,则把标题行一起复制到汇总表
                Rng.Copy
                [a1].PasteSpecial Paste:=xlPasteValues
            Else
                '否则,扣除标题行后再复制黏贴到总表,只黏贴数值
                Rng.Offset(n).Copy
                Cells(ActiveSheet.UsedRange.Rows.Count + 1, 1).PasteSpecial Paste:=xlPasteValues
            End If
        End If
    Next
    [a1].Activate
    Application.ScreenUpdating = True '恢复屏幕刷新
End Sub

操作过程,参考下面的动画教程:

小提示:

该代码是将分表的数据汇总明细到当前工作表,因此在使用时务必先选择汇总表哦!

如果内容对你有用,请花费几秒钟给个评论!

由于评论审核机制,可能您的评论暂时不可见,不影响查看回复可见的内容!

扫描二维码推送至手机访问。

版权声明:本文由云淡风轻Mr.Liu发布,如需转载请注明出处。

本文链接:https://www.nylmj.cn/post/103.html

相关文章

是时候制作一份自杀or杀人的工作簿了

是时候制作一份自杀or杀人的工作簿了

1,……Long Long Ago……山的那边海的那边……有位Excel高手……他在一家电子商务公司上班。他有一份Excel工作簿,通过VBA编程将日常工作通通自动化了。他每天闲的除了喝王者农药就是剁...

VBA常用小代码目录

VBA常用小代码目录

更多实用VBA小代码,请持续关注本公众号,设定中的小代码系列一共有108集哦~0,工作表处理:(点击目录,即可跳转到相关文章,不用回复关键词)VBA常用小代码001:一键生成带超链接的工作表目录VBA...

如何用VBA代码查询两列数据差异?

如何用VBA代码查询两列数据差异?

我们今天和大家分享的内容是如何用VBA代码查询两列数据差异?照例打个响指,举个栗子。如上图所示,查询A列和C列的数据,提取出相同值、A列存在C列不存在的值、A列不存在C列存在的值……查询结果如下图所示...

不做加班狗——批量生成带照片的准考证

不做加班狗——批量生成带照片的准考证

Word提供的邮件合并功能可以帮助咱们轻松的制作工资条、通知书、邀请函、明信片、准考证、毕业证书等等,一般做法是用Word文档做一个模板,将信息的数据源存放到Excel表格里,通过邮件合并建立起表格与...

VLOOKUP函数变态用法,74.2%的人不知道

VLOOKUP函数变态用法,74.2%的人不知道

大家好,我是星光。咱们今天继续聊聊VLOOKUP函数,有人问我为啥这么执迷于VLOOKUP函数,聊了一期又一期的。这个说来话就长了,这牵扯到俺的一点小隐私。和很多表亲一样,VLOOKUP是俺掌握的第一...

【Excel VBA】批量将工作表转换为独立工作簿

【Excel VBA】批量将工作表转换为独立工作簿

有时候 有时候 我会相信一切有尽头……相聚离开都有时候 没有什么会永垂不朽……有时,我们需要将一个工作簿里的每一张工作表,另存为单独的工作薄;如果只是一两张工作表,我们手工操作就挺好的,可如果是若干张...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。