(图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)