在数据分析工作中,经常遇到需要大批量输出一模一样的Excel表单内容,用于日常业务管理,如果自己开发或者在网上购买系统平台,成本费用太过昂贵,只能使用人工手动,一张表一张表的做出来。而且,作为公司一个考核评分标准,必须有统一的规范模式,不是简单地做一张汇总表就可以,这些评分结果将会分发到每个不同的人手里,信息之间不能共享。

这个问题一直困扰我很久了,直到最近,向同事请教之后,才知道自己在Excel的道路上还是个微不足道到的使用者,道阻且长!如图所示,想要在所有的红框内自动填写数据,然后根据不同的客户,实现批量自动生成效果,希望这次分享能帮助你,可能有些难度,大家不理解的可以留言问我。给你看看效果

本次分享主要实现的功能:
1、按照月份,批量将汇总数据分别填写到模板表中(自己设定);
2、生成出来的每一个表都是与汇总表一一对应的;
3、此次实现使用ExcelVba模块代码功能。
具体操作步骤,设置好模板样式,注意想要什么样的效果就在模板中设计好,不然生成的数据格式不一。
1、将模板需要填写的依次数据汇总,不要有遗漏,例如客户名称,评分表的分值和占比,总分等均需要在汇总表里面设置好。
2、将汇总表和模板表放到同一文件夹,不然路径找不到。
3、在汇总表新建一个“生成表格”,设置匹配月份,为了固定位置,我做了一个下拉框,例如想要1月份,在下拉框中选择1月份。(注意,为了节省每次操作时间,你也可以,新建一个按钮,把第4步建立的宏链接起来)

4、打开VBA模块编写界面,输入以下代码,点击执行,就会自动生成批量评价表,就如开头显示的效果。也可以创建一个按钮,点击按钮直接出来。

附代码:
Sub 评分表()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.EnableEvents = False
t = Timer
Set S1 = Worksheets("案例")
Pathx = ThisWorkbook.Path & "\模板.xlsx"
For r = 2 To S1.Range("A65536").End(3).Row
If S1.Cells(r, 2) = Worksheets("生成表格").Cells(1, 2) Then
Set WB = Workbooks.Open(Pathx)
Set S2 = WB.Worksheets(1)
S2.Range("D4").Value = S1.Cells(r, 8).Value
S2.Range("D5").Value = S1.Cells(r, 9).Value
S2.Range("D6").Value = S1.Cells(r, 10).Value
S2.Range("E4").Value = S1.Cells(r, 5).Value
S2.Range("E5").Value = S1.Cells(r, 6).Value
S2.Range("E6").Value = S1.Cells(r, 7).Value
S2.Range("E2").Value = S1.Cells(r, 4).Value
S2.Range("E7").Value = S1.Cells(r, 11).Value
Application.DisplayAlerts = False
For Each Sht In Sheets
If Sht.Name <> "案例" Then Sht.Delete
Next
Application.DisplayAlerts = True
WB.SaveAs ThisWorkbook.Path & "\" & S1.Cells(r, 2) & S1.Cells(r, 4)
WB.Close True
End If
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
Application.DisplayAlerts = True
MsgBox "一共用时:" & Format(Timer - t, "#0.0000") & " 秒", , "提示!!"
End Sub