暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

数据汇总,让效率飞!

施施的EXCEL后备军 2021-08-30
477
工作期间总会有各种格式一样的表发下去填报,后汇总。汇总的时候,如果用Ctrl+C和Ctrl+V的话又费时也费力。可以参照以下VBA代码来汇总。
如图1的4张表格,格式相同,样式一样,需要将其汇总。


(图1)

【破题步骤】

1.新建一个工作簿,名称是“汇总”,且将标题写好。如图2所示。

(图2)

            2.按快捷键【ALT+F11】唤出VBE窗口,或者右击工作簿里面的工作表,选择【查看代码】。

            3.输入如下代码(可直接复制)

Sub hebing()

    Dim r As Long, c As Long

    r = 2 '标题的行数

    c = 4 '标题的列数

    Range(Cells(r + 1, "A"),Cells(65536, c)).ClearContents

    Application.ScreenUpdating = False

    Dim filename As String, wb As Workbook, shtAs Worksheet, erow As Long, fn As String, arr As Variant

    filename = Dir(ThisWorkbook.Path &"\*.xlsx") '需要汇总表格的后缀

    Do While filename <> ""

        If filename <> ThisWorkbook.NameThen

            erow =Range("a1").CurrentRegion.Rows.Count + 1

            fn = ThisWorkbook.Path &"\" & filename

             Set wb = GetObject(fn)

            Set sht = wb.Worksheets(1)

            arr = sht.Range(sht.Cells(r + 1,"A"), sht.Cells(65536, "C").End(xlUp).Offset(0, 1)) '1是表格中最后列的距离距C列的间隔数,可以根据列数的变化而修改

            Cells(erow,"a").Resize(UBound(arr, 1), UBound(arr, 2)) = arr

            wb.Close False

        End If

        filename = Dir

    Loop

    Application.ScreenUpdating = True

End Sub

        4.运行此段代码就可以得到汇总表格。如图3所示。

(图3)

5.再将汇总的表格再次整理优化就可以得到一份汇总名单。如图4所示。

(图4)


【备注】后缀名是“.xlsx”的工作簿是保存不了VBA代码的,如果需要保存代码的,另存为“.xlsm”或者“.xls”。如果不需要保存代码的,直接保存就可以了,在弹出的提示对话框中选择“是”。

Tips1:代码不做具体注释是因为大部分工作人员只要会用就可以了,注释得越多,反而会造成不必要的烦恼。(具体注释在文后有图片,图5)。

Tips2:如果发现其中有误,还麻烦多多指教,感谢。

Tips3:万丈高楼平地起!

(图5)




文章转载自施施的EXCEL后备军,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论