在很多工作中,经常需要写一些类似的报告,使用同一个模板,只是里面的数据不同,人工操作工程量大且容易出错,如果能用程序直接实现可以省去不少麻烦。
本文使用ExcelVBA实现,主要思路是使用word邮件合并功能,将word文字报告与Excel数据链接,不太了解邮件合并功能的戳:http://xinzhi.wenda.so.com/a/1517858371619706
本文内容适用于 快速填写word表格,快速填写一套word表格,根据excel表及一个模板文件快速生成文字报告,根据同一个excel表多个模板文件快速生成多个不同的文字报告。
本文使用office2007,最后一次使用office2016。
1,创建一个word文档作为模板,存为doc格式,命名为 模板。
2,创建一个Excel存放数据,将数据的名称输入至sheet2第一行,保存为xlsm格式,命名为 数据
以sheet1为源数据表(sheet1是之后输入数据的地方,只是为了纵向方便输入)
3,打开word采用邮件合并功能将刚刚创建的word模板与Excel数据文件链接,选择sheet2
插入合并域
4,打开Excel的vb编辑器(在设置中打开开发工具),插入模块,在模块中输入以下代码:
Sub merge()
Dim sh1 As Worksheet
Set sh1 = Worksheets("Sheet1")
Dim sh2 As Worksheet
Set sh2 = Worksheets("Sheet2")
'将sheet1的数据转换到sheet2中
'-----------------单元格对应-------------------------
sh2.Range("A2") = sh1.Range("B1") '姓名
sh2.Ran