工作中我们经常碰到这样的问题,比如每天都需要用excel表格统计销售数据,某一天老板突然问你:“下午我要和供应商谈合作,你把今年所有的销售数据给我一个。”人世间最痛苦的事情之一就是——措手不及!几百张表啊,一张张粘贴到一起,会不会粘重了?会不会粘漏了?埋怨老板的突发奇想?埋怨自己平常没有做细这个工作?不要急,让我来教你一招,分分钟搞定海量表格的汇总,让老板对你刮目相看、赞叹不已。
首先建一个文件夹(如下图“销售统计”),将所有你需要合并的表格都放进去。
在该文件夹中新建一个表格,可以取名叫“汇总”。打开这张表,在其左下角Sheet1上单击右键。
看到有个“查看代码”了吗?点击打开。你会看到如下的对话框。
下面是最最核心的秘密了,我要收取版权费,啊(ง ˙o˙)ว,别走啊朋友,我开玩笑的。在那个写着“通用”二字的对话框中复制粘贴进下列代码:
Sub 合并当前目录下所有工作簿的全部工作表()
Dim MyPath, MyName, AWbName
Dim Wb As Workbook, WbN As String
Dim G As Long
Dim Num As Long
Dim BOX As String
Application.ScreenUpdating = False
MyPath = ActiveWorkbook.Path
MyName = Dir(MyPath & "\" & "*.xls")
AWbName = ActiveWorkbook.Name
Num = 0
Do While MyName <> ""
If MyName <> AWbName Then
Set Wb = Workbooks.Open(MyPath & "\" & MyName)
Num = Num + 1
With Workbooks(1).ActiveSheet
.Cells(.Range("A65536").End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4)
For G = 1 To Sheets.Count
Wb.Sheets(G).UsedRange.Copy .Cells(.Range("A65536").End(xlUp).Row + 1, 1)
Next
WbN = WbN & Chr(13) & Wb.Name
Wb.Close False
End With
End If
MyName = Dir
Loop
Range("A1").Select
Application.ScreenUpdating = True
MsgBox "共合并了" & Num & "个工作薄下的全部工作表。如下:" & Chr(13) & WbN, vbInformation, "提示"
End Sub
代码什么含义?吃蛋就不必认识鸡了吧,听重点。代码粘贴好了就是上图的效果,没有显示红色字符报错,就可以进入下一步了。出现红色字符报错?找我啊,一起学习共同提高。然后点击“运行子过程”,就是那个绿色三角符号,或者按F5快捷键。
运行后会弹出如下对话框“共合并了*个工作簿下的全部工作表”,表明汇总成功,没弹出肯定是人品问题。
你老板需要的汇总数据就这样完成啦,但是就这样你成长了吗?你得学会总结经验,举一反三。关闭此汇总表时注意将其保存为“启用宏的工作簿”。
于是你就得到一张可以运用于所有表格汇总的万能表。比如我们要统计西方美术大师的工资情况。
还是建一个文件夹,把1—3月工资表丢进去,然后把你的万能汇总表也放进去,打开它。
宏已被禁用?启用它(也可以单击“视图”——“查看宏”)。
弹出宏名“合并当前……”,点击“执行”。
汇总成功,真的可以十秒钟搞定人员工资汇总。
而且此万能表并不是只能汇总格式完全一致的表,不同的表(如“销售业绩”、“人员工资”)也可以如法炮制直接汇总在一起,您可以自己去尝试,是不是so easy啊。
(如果您想认识一个有趣有料的人,请关注我,我是奔的4,用文字的力量改变生活。)