EXCEL中VBA及WORD邮件合并功能在批量处理报表中的应用
2021-03-22何振娟王玮刘海龚小燕刘小欣汪新杰纵翔宇
何振娟 王玮 刘海 龚小燕 刘小欣 汪新杰 纵翔宇
摘要:EXCEL是目前应用最为广泛的办公室表格处理软件之一,它具有强大的数据处理和分析功能。在EXCEL 中使用VBA编程进行二次开发,能实现数据处理的自动化。 WORD的邮件合并可以实现多条记录在同一格式报表中批量呈现,WORD域的开发与EXCEL的结合,是关系型数据库和数据表的综合应用。本文以职称评审工作中涉及的任职资格评审表为例,展现EXCEL中VBA批量提取数据的强大功能及WORD邮件合并对报表的批量一次性呈现功能,为用户从简单而重复的数据处理工作中解脱出来、提高办公效率及实现办公自动化提供了借鉴思路。
关键词:EXCEL;VBA编程;邮件合并;批量提取;办公自动化
中图分类号:TP311 文献标识码: A
文章编号:1009-3044(2021)06-0212-03
Abstract: EXCEL is one of the most widely used office table processing software. It has powerful data processing and analysis functions. VBA programming is used for secondary development, which can realize the automation of data processing. WORD mail merging can realize the batch rendering of multiple records in the same format report. The development of WORD domain and the combination of EXCEL are the comprehensive application of relational database and data table. Based on the title appraisal work involved in the qualification of table, for example, show the EXCEL VBA batch extraction to the powerful features of the data and WORD mail merge for reports of batch one-time rendering functions, from simple and repetitive data processing for the user work freed, improve office efficiency and offers a reference way to realize office automation.
Key words: EXCEL; VBA programming; Mail merge; Batch extraction; Office automation
1 概述
EXCEL作為Microsoft office办公软件的重要成员之一,目前在办公室表格处理中应用最为广泛。EXCEL 作为电子表格组件,简单到让用户在很短的时间里做出完整的报表,但是随着办公信息的大量涌入,数据结构的多样繁杂,简单地应用Office 软件,已经不能满足自动化办公的需求,开发利用Office 的高级功能是信息化发展的必然,Office 提供的大量函数提供了宏、VBA 功能,并且EXCEL 能够针对不同的桌面数据处理要求提供一种或几种符合处理数据、报表处理的方法[1]。另外WORD的邮件合并可以实现多条记录在同一格式报表中批量呈现,WORD域的开发与EXCEL的结合,是关系型数据库和数据表的综合应用。
众所周知,办公室工作中经常会出现填写内容相似的各种表格,而在自动化技术日趋成熟的今天,利用软件的二次开发,解决此类烦琐工作变得相对简单起来。本文从职称评审工作中遇到的实际问题出发,探索办公自动化的思路及实现方法。通过利用VBA 编程和WORD的邮件合并功能,实现职称评审申报表批量处理,使信息管理更准确高效,工作效率进一步提高。
1.1 VBA 简介
VBA(Visual Basic for Application)本质就是VB 的编程,通过编写宏完成对Office的二次开发,实现用户所需功能。由于VBA编程可以简化EXCEL 操作,实现报表中数据提取、计算等的批量处理,使得EXCEL VBA在办公中得到了越来越广泛的应用[2]。
1.2 邮件合并技术简介
WORD具有强大的文字处理与排版功能,是最常用的文字处理软件。邮件合并是WORD中一种可以批量处理的功能,可以实现多条记录在同一格式报表中批量呈现[3]。
实现邮件合并的路径:建立一个包括所有文件共有内容的WORD主文档和一个包括变化数据的EXCEL数据源文档,然后使用邮件合并功能在WORD文档报表中插入变化的信息,合成后的文件保存为一个或是批量保存为多个WORD文档[4]。
2 实例
2.1 问题的提出
办公室工作中经常会出现填写内容相似的各种表格,比如职称评审及岗位资格认定工作,需填报申报表的员工人数多,且表中涉及的信息量大,包括员工的基本信息、工作履历、学历、党派、职称等各种信息,从单位现有的人力系统中导出的员工信息见图1,从中可知个人信息分散在EXCEL的多个页签中。如何从这些页签中快速提取出申报表所需的数据并完成多人的申报表填写,亟待我们去探索办公自动化的思路及实现方法。
2.2 实现方法
从EXCEL表中快速提取所需数据完成多个员工申报表填写,主要分两个步骤:首先EXCELVBA编程实现申报表所需数据提取;其次WORD的邮件合并,实现多人的申报表自动填写保存,报表自动化设计思路见图2。
2.3 执行方法
2.3.1 VBA编程实现数据批量提取
EXCEL的高阶操作需通过VBA编程实现。为了实现职称评审报表的批量填报,首先需获得员工个人信息。先从单位人力资源系统中导出员工信息表,格式为EXCEL,命名為“员工信息表”。打开“员工信息表”,点击工具栏的VB 编辑器进入开发环境,编辑代码。运行代码后会自动生成一个职称申报表数据的页签,其中已提取出员工职称申报表中所需的数据。
由于从人力资源系统导出的员工信息表中学历、履历等均不是一人一条信息,而是一人多条,VBA编程实现了最高学历及最新履历的提取,同时也实现了从EXCEL多个页签中提取了目标数据,减少了人工提取的烦琐劳动,极大提高了工作效率。部分关键代码如下:
Sub TQ()
Dim l As Long
l = Sheets(6).Range("A1").End(xlDown).Row
For i = l To 2 Step -1
If Sheets(6).Cells(i, 12).Value = "否" Then
Sheets(6).Rows(i).Delete
End If
Next
Dim array_info(3)
array_info(0) = "姓名"
array_info(1) = "职务"
array_info(2) = "任职时间"
Sheets.Add After:=Sheets(Sheets.Count)
i = Sheets.Count
Sheets(i).Name = "职称申报表数据"
Sheets(i).Tab.Color = 255
Sheets(i).Range("A1").Resize(1,8) = array_info
Sheets(i).Range("A1:AA65535").NumberFormat = "@"
Dim arr() As Variant
arr = Array("张三", "李四", "王五", "赵六")
k = 5
For m = 2 To k
On Error Resume Next
Sheets(i).Cells(m, 1).Value = arr(m - 2) '姓名
Sheets(i).Cells(m, 2).Value = Sheets(15).Application.WorksheetFunction.IfError(Sheets(15).Application.WorksheetFunction.VLookup(arr(m - 2), Sheets(15).Range("B:Y"), 6, False), "") '职务
If Sheets(i).Cells(m, 2).Value = " " Then
Sheets(i).Cells(m,3).Value = " "
Else
Sheets(i).Cells(m,3).Value = Sheets(15).Application.WorksheetFunction.IfError(Sheets(15).Application.WorksheetFunction.VLookup(arr(m - 2), Sheets(15).Range("B:Y"), 2, False), "") '任职时间
End If
Next m
End Sub
2.3.2 邮件合并
2.3.2.1 邮件合并前期准备
由于职称评审表中需插入员工电子照片,前期收集整理员工照片,均保存为以姓名命名的jpg格式,且所有照片放在同一个文件夹中。
2.3.2.2 邮件合并基本操作
打开专业技术职务任职资格评审表,选择 邮件→ 开始邮件合并,根据邮件合并分步向导进行操作,选择信函命令,将数据源关联至已提取生成的职称申报表数据。插入合并域操作,为后续批量保存为多个文档,此步骤中注意在表的最上面一行专业技术职务任职资格评审表的前面插入姓名,并将此行在引用中设成1级。通过文档部件的域命令插入电子照片。生成合并文档,并实现以单个文件保存文档,单击视图→显示级别设成1级→显示文档→选中所有表→点击创建→另存为,批量生成申报表。
2.3.2.3 邮件合并的输出
通过邮件合并批量生成的文档见图3,自动生成的职称评审申报表见图4。
3 结语
本文从人事管理的实际工作需要出发,充分利用VBA语言及邮件合并功能,实现了职称申报表的快速自动化填报,极大节约了人工劳动量,为批量制作办公报表提供了借鉴思路。通过实践,办公人员可以极大提高办公效率,并在此过程中提升自己的管理信息化素养,在工作中触类旁通,通过思考获得高效便捷的难题解决办法。
参考文献:
[1] 刘晓忠.Excel中VBA在学校办公中的应用[J].科技传播,2014,6(19):222-223.
[2] 李小遐.Excel VBA在办公自动化中的应用[J].电子测试,2014,(22):105-106,95.
[3] 晁素红,李进旭.两种带照片的“邮件合并”[J].能源与环保,2017,39(12):232-237.
[4] 百度百科.http://baike.baidu.com/view/1166249.htm.
【通联编辑:梁书】