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

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

文章图片

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

文章图片

excel|干货|案例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 ri 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.QuitEnd Sub
05
扩展延伸
  • 目前实现的是单一Word介绍信的生成 。 如果想改成你的报告模板 , 可以将你需要的文本替换现有文档 , 同时在需要替换的标识处(如本文的医院名称)插入格式文本内容控件 , 即可按Excel表中的顺序逐一替代Word中的内容标识 。

  • 关注我 , 并私信“自动报告” , 即可获取免费完整版下载地址 。
关注Gavin与狗 , 让你解放双手
【excel|干货|案例01期:VBA助力自动生成报告(内附下载)】


    推荐阅读