何振娟 王瑋 劉海 龔小燕 劉小欣 汪新杰 縱翔宇



摘要: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.
【通聯編輯:梁書】