干货| 案例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与狗,让你解放双手!