微信公众号:yhjbox(永恒君的百宝箱),获取最新文章、资源。

Excel vba 实例(6) – 一键汇总多个sheet数据到总表

Excel VBA 实例 永恒君 1226℃ 0评论

Hello 大家好!

今天永恒君给各位分享的是Excel VBA实例第六篇,如何一键汇总多个sheet数据到总表,这个要做统计、数据的时候非常的好用。

比方说如下图,一个记录了1-6月份的考勤工作簿,包含了每个月的考勤记录,现在需要统计半年来的考勤情况。

自然会想到,要将各个分表的数据汇总到同一张表里处理。那么今天的实例就是解决这个问题。


先上代码


Sub collect()

    Dim sht As Worksheet, rng As Range, k&, trow&

    Application.ScreenUpdating = False

    trow = Val(InputBox(“请输入标题的行数”, “提醒”))

    If trow < 0 Then MsgBox “标题行数不能为负数。”, 64, “警告”: Exit Sub

    Cells.ClearContents

    Cells.NumberFormat = “@”

    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(trow).Copy

                Cells(ActiveSheet.UsedRange.Rows.Count + 1, 1).PasteSpecial Paste:=xlPasteValues

            End If

        End If

    Next

    [a1].Activate

    Application.ScreenUpdating = True

End Sub



效果演示一下:

这里提醒一下


1、运行代码的时候一定要先选择需要汇总的sheet,否则会出错的;


2、每个sheet的标题行数可以根据实际情况来填写,填0,则表示不需要标题行,但是第一页默认会把标题行加上。


永恒君直接把上面实例VBA的文件分享出来,需要的就直接使用吧。


公众号后台回复“汇总”即可。



不少人对VBA代码有抵触心理,其实没有那么复杂,把他看成一个稍微复杂点的函数即可。


当然如果并不打算深入学习VBA,只是临时使用下,那只要会复制黏贴就好了!


至于怎么用VBA代码,可以参考之前的文章:


Excel vba 实例(1) – 批量制作工资表头

Excel vba 实例(2) – 批量将工作表拆分为单独文件

Excel vba 实例(3) – 多个工作簿批量合并

Excel vba 实例(4) – 根据已有名称,批量新建表格

Excel vba 实例(5) – 快速合并n多个相同值的单元格



Excel VBA功能很强大,但是要熟练的运用起来还是有一定的难度,好在永恒君帮大家搜集了几套关于VBA的视频教程,非常的实用。


需要的话,公众号后台回复“VBA”获取吧~~



欢迎交流!


微信公众号:永恒君的百宝箱

个人博客:www.yhjbox.com

anyShare分享到:

转载请注明:永恒君的百宝箱 » Excel vba 实例(6) – 一键汇总多个sheet数据到总表

喜欢 (2)
发表我的评论
取消评论

*

code

表情