干货| 案例01期:VBA助力自动生成报告(内附下载)

01

使用背景

1、VBA简介

VBA作为一钟宏语言,在Excel、Word、PPT等软件中可Alt+F11一键开启编写。免去主流编程语言(如大热的Python)安装时的复杂与痛苦,像傻瓜一样复制代码进去即可立刻运行。堪称解放办公室一族的最佳利器!

2、应用领域

财务(报表、对账单、凭证等)、法务(合同等)、招投标(清标、报告等)、日常办公(打印、批量调整格式、批量发送邮件、爬取网页数据等)等各方面涉及office软件的自动化操作。

3、本文目标解决

编程小白人群的日常办公——自动生成Word介绍信/报告。

02

实现效果

无需打开介绍信,并手动调整内容。仅在Excel表中填写完毕,并可推广运用至批量生成该介绍信/报告。

实现效果可自动生成如下图的介绍信,其中接收单位医院、所在科室、申请人职称、申请人姓名、开始年月日、结束年月日、当前年月日,均可自动修改。

03

具体步骤

1、新建文件夹,将Gavin提供的Excel文件和Word文本下载(后附下载链接);

2、打开Excel文件将需要的医院名称、申请人姓名等13条信息修改完成;

3、按下Alt+F11打开VBA窗口,再按F5快捷键,即可自动生成对应报告。

04

代码说明

D1单元格为你需要编写的文本名称,本例子为“你要打开的文件名输在这里”;

第九行代码Range("D1").Value & ".docx")在文本文件为doc格式时需要修改为Range("D1").Value & ".doc")。

具体代码如下:

Sub dataToWord() 

Dim wordApp As Word.Application 

Dim wDoc As Word.Document 

Dim control As Word.ContentControl    

Dim r,i As Integer r = 2 i = 1    

Set wordApp = CreateObject("word.application") 

Set wDoc = wordApp.Documents.Open(ThisWorkbook.Path & "/" & Range("D1").Value & ".docx") wordApp.Visible = True   

For Each control In wDoc.ContentControls           

control.Range.Text = Sheets(1).Cells(r, 3) 

     r = r + 1

     i = i + 1    

Next 

wordApp.Documents.Close 

wordApp.Quit

End Sub

05

扩展延伸

目前实现的是单一Word介绍信的生成。如果想改成你的报告模板,可以将你需要的文本替换现有文档,同时需要替换的标识处(如本文的医院名称)插入格式文本内容控件,即可按Excel表中的顺序逐一替代Word中的内容标识。

关注公众号:Gavin与狗(ID:callmeGavin8),回复“自动报告”,即可获取免费完整版下载地址。

关注Gavin与狗,让你解放双手!

你可能感兴趣的:(干货| 案例01期:VBA助力自动生成报告(内附下载))