張文曉
摘要 :本文主要介紹了兩種Excel和Word之間的交互方式,一個(gè)是從Word文檔中讀取數(shù)據(jù)導(dǎo)入到Excel中做處理,另一個(gè)是利用Excel操作Word文檔,實(shí)現(xiàn)Word文檔的組裝,從而使用戶能靈活地定制工作流程。
關(guān)鍵詞:Excel;VBA;Word;數(shù)據(jù)導(dǎo)入;組裝
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2019)08-0201-04
開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
Data Transfer between Excel and Word Based on VBA
ZHANG Wen-xiao
(Ingersoll Rand Engineering Technology Center-Asia Pacific, Suzhou 215400, China)
Abstract: This paper mainly introduces two ways of interaction between Excel and Word, one is to import data from Word documents into Excel for processing, the other one is to use Excel to manipulate Word documents to realize the assembly of Word documents, so that users can flexibly customize the workflow.
Keywords: Excel; VBA; Word; Data Import; Assemble
Excel和Word是大家最熟悉的日常辦公軟件。Excel的特點(diǎn)是便于數(shù)據(jù)的計(jì)算和統(tǒng)計(jì),Word的特點(diǎn)方便文字的編輯和排版。多數(shù)情況下,人們都是在單獨(dú)某一個(gè)軟件下工作,二則似乎“井水不犯河水”。但隨著大數(shù)據(jù)時(shí)代的來臨,批量化操作、定制化操作的需求越來越迫切。下面試舉兩例:
1) 可以想象一下,如果你有上百個(gè)word文檔,每一個(gè)文檔,可能代表一個(gè)產(chǎn)線上反饋的問題,而你想把這些word文檔中的信息進(jìn)行匯總、分析。如果采用傳統(tǒng)的操作,那么只能逐一打開這些文檔,然后將數(shù)據(jù)手動(dòng)地復(fù)制、粘貼到Excel中進(jìn)行處理。如果能從Excel中批量讀取這些信息,那么是不是會(huì)事半功倍?
2) 每個(gè)企業(yè)都有自己的操作規(guī)范,一般地,這些操作規(guī)范等內(nèi)容會(huì)被存在一個(gè)word文檔里,我們暫且稱之為“總則”。但是,往往具體的項(xiàng)目需要定制化的操作流程,我們當(dāng)然可以到“總則”里找到相應(yīng)地操作,就像我們寫文章的時(shí)候每個(gè)字都可以從字典中查到一樣。但那樣效率會(huì)很低,因?yàn)椤翱倓t”里有一些和這個(gè)項(xiàng)目無關(guān)的操作。這樣,如果我們把“總則”拆分成若干“細(xì)則”,即拆分若干個(gè)word文檔,再根據(jù)具體項(xiàng)目,在Excel配置所需的“細(xì)則”,最后由程序“組裝”這些細(xì)則,那么就可以形成高度定制化地、靈活地項(xiàng)目操作規(guī)范。技術(shù)上,就是把由用戶自由定制的word文檔,通過程序組裝成一個(gè)針對(duì)某一項(xiàng)目的操作流程。此過程相當(dāng)于把數(shù)據(jù),由打包存儲(chǔ)、大海撈針式查找,轉(zhuǎn)換成離散存儲(chǔ)、按需組合。同時(shí),某個(gè)word文檔可能被多個(gè)工作流程引用,如果更新這個(gè)word文檔的內(nèi)容,那么相關(guān)的工作流程都會(huì)被更新,從而實(shí)現(xiàn)更加方便地維護(hù)。
下面針對(duì)上述內(nèi)容,詳細(xì)說明如何實(shí)現(xiàn)。
1 解決方案
1.1 VBA中Word對(duì)象基礎(chǔ)
1.1.1 新建Word引用
我們對(duì)Excel VBA都不陌生,但在Excel里操作Word可能接觸比較少,那么首先讓我們來了解一下Word對(duì)象的基礎(chǔ)知識(shí)。
首先需要?jiǎng)?chuàng)建一個(gè)對(duì) Word Application 對(duì)象的引用。在VBA中,工具→引用,選取“MicroSoft Word 15.0 Object Library”。如下圖所示。
圖1 VBA中引用Word Application
方法一:New Word.Application
Dim Wordapp As Word.Application
Set Wordapp = NewWord.Application
Wordapp.Visible = True '可見
Dim WordD As Word.Document '定義word類
Set WordD = Wordapp.Documents.Add '新建文檔
'Set WordD = Wordapp.Documents.open(filename) '打開文檔
'……
WordD.Close '關(guān)閉文檔
Set WordD = Nothing
WordApp.Quit '退出Word對(duì)象
方法二:CreateObject
Dim WordApp As Object
Set WordApp =CreateObject("Word.Application") '新建Word對(duì)象
方法三:GetObject
文件已打開的情況下,使用:SetWordD=GetObject(filename),可建立對(duì)文檔的引用,如果文件沒有打開,則還需要先用方法一或二來操作。