实例(26) – 一键批量提取word文字内容
今天这个实例就来说说如何将excel中的内容填充到word中,批量生成报告。
需求是这样的,这里有一张客户信息表,如下图
要根据现有的模板,对每一个客户生成一份word月度报告,模板如下:
图中的红框信息根据信息表的内容来填写。
最后实现的效果是每个客户一个word文件,里面存放的是月度报告信息,
这个需求总体上来说比较简单,操作思路一般是这样:
1、复制一份模板,改成客户的名字;
Newname = "月度收益报告-" & Range("a" & i) & ".docx" '给新生成的表起个名称
FileCopy mypath & "模板.docx", mypath & Newname '将模板复制并重命名
2、打开word,将excel客户信息表的内容,通过挨个“查找”关键词的方法,依次将要替换的内容粘贴进去即可。
With wApp
.Visible = False
.Documents.Open mypath & Newname '打开我们复制的新文件进行更改
Do While .Selection.Find.Execute("客户") '寻找客户这个关键词,将其用表格中的姓名来代替
.Selection.Text = Range("A" & i).Text
.Selection.HomeKey Unit:=6 '移动光标至文档开始
Loop
If Range("B" & i) = "男" Then '将男改成先生,女改成女士
XB = "先生"
Else
XB = "女士"
End If
Do While .Selection.Find.Execute("性别")
.Selection.Text = XB
.Selection.HomeKey Unit:=6
Loop
Do While .Selection.Find.Execute("报告日期")
.Selection.Text = Range("F" & i).Text '替换字符串
.Selection.HomeKey Unit:=6
Loop
Do While .Selection.Find.Execute("本金金额")
.Selection.Text = Range("C" & i).Text '替换字符串
.Selection.HomeKey Unit:=6
Loop
Do While .Selection.Find.Execute("收益金额")
.Selection.Text = Range("D" & i).Text '替换字符串
.Selection.HomeKey Unit:=6
Loop
Do While .Selection.Find.Execute("金额大写")
.Selection.Text = Range("E" & i).Text '替换字符串
.Selection.HomeKey Unit:=6
Loop
.Documents.Save
.Quit
End With
实现的效果如下:
感兴趣的可以在公号内回复「word报告」自取试用。大家如果觉得实用,点个“在看”并分享给更多的朋友吧。
微信公众号:永恒君的百宝箱
个人博客:www.yhjbox.com
转载请注明:永恒君的百宝箱 » Excel VBA 实例(28) – 批量生成word报告