首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Excel VBA 实例-批量生成word报告

将永恒君的百宝箱设为星标 精品文章第一时间读

之前介绍过如何批量提取word内容到excel的实例:

实例(23) - 一键批量提取word表格内容

实例(26) – 一键批量提取word文字内容

今天这个实例就来说说如何将excel中的内容填充到word中,批量生成报告。

1

需求是这样的,这里有一张客户信息表,如下图

要根据现有的模板,对每一个客户生成一份word月度报告,模板如下:

图中的红框信息根据信息表的内容来填写。

最后实现的效果是每个客户一个word文件,里面存放的是月度报告信息,

2

这个需求总体上来说比较简单,操作思路一般是这样:

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

3

实现的效果如下:

感兴趣的可以在公号内回复「word报告」自取试用。大家如果觉得实用,点个“在看”并分享给更多的朋友吧。

微信公众号:永恒君的百宝箱

个人博客:www.yhjbox.com

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200622A05WEL00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券