根據(jù)EXCEL數(shù)據(jù)自動生成WORD文檔

????很多時候,您是否有過在WORD里面重復(fù)制作某種資料的工作蓬豁。比如給定了合同模板菇肃,需要根據(jù)不同合同內(nèi)容制作出不同的合同巷送,但模板是一樣的。一般情況下就是老老實實的一份一份的去填寫(還不保證不會有錯誤)付魔。那么有沒有可以自動生完成的辦法呢?答案是肯定有翻屈,不然我在這嗶嗶啥呢妻坝!接下來言歸正傳。在此上個大招厘贼,接下來就以合同為例:

1圣拄、制作合同模板文件,把合同變量部分用特殊變量替換岳掐。圖示如下:

2串述、在EXCEL里面添加合同主要內(nèi)容數(shù)據(jù)寞肖,圖示如下:

3逝淹、在EXCEL里面添加一個Active X按鈕控件,根據(jù)自身需要修改其屬性茉兰。

4规脸、.在按鈕控件下寫如下代碼熊咽,并將該EXCEL文件另存為XLSM:

? Private Sub cmd_makedoc_Click()

On Error GoTo Err_cmdExportToWord_Click

? ? Dim objApp As Object 'Word.Application

? ? Dim objDoc As Object 'Word.Document

? ? Dim strTemplates As String '模板文件路徑名

? ? Dim strFileName As String '將數(shù)據(jù)導(dǎo)出到此文件

? ? Dim i As Integer

? ? Dim contact_NO As String

? ? Dim side_A As String

? ? Dim side_B As String

? ? i = ActiveCell.Row

? ? contact_NO = Cells(i, 1)

? ? side_A = Cells(i, 2)

? ? side_B = Cells(i, 3)

? ? With Application.FileDialog(msoFileDialogFilePicker)

? ? ? ? .Filters.Add "word文件", "*.doc*", 1

? ? ? ? .AllowMultiSelect = False

? ? ? ? If .Show Then strTemplates = .SelectedItems(1) Else Exit Sub

? ? End With

? '通過文件對話框生成另存為文件名

? ? With Application.FileDialog(msoFileDialogSaveAs)

? ? ? ? '.InitialFileName = CurrentProject.Path & "\" & contact_NO & ".doc"

? ? ? ? .InitialFileName = contact_NO & ".doc"

? ? ? ? If .Show Then strFileName = .SelectedItems(1) Else Exit Sub

? ? End With

? ? '文件名必須包括“.doc”的文件擴展名横殴,如沒有則自動加上

? ? If Not strFileName Like "*.doc" Then strFileName = strFileName & ".doc"

? ? '如果文件已存在卿拴,則刪除已有文件

? ? If Dir(strFileName) <> "" Then Kill strFileName

? ? '打開模板文件

? ? Set objApp = CreateObject("Word.Application")

? ? objApp.Visible = True

? ? Set objDoc = objApp.Documents.Open(strTemplates, , False)

? '開始替換模板預(yù)置變量文本

? With objApp.Application.Selection

? ? ? ? .Find.ClearFormatting

? ? ? ? .Find.Replacement.ClearFormatting

? ? ? ? With .Find

? ? ? ? ? ? .Text = "{$合同編號}"

? ? ? ? ? ? .Replacement.Text = contact_NO

? ? ? ? End With

? ? ? ? .Find.Execute Replace:=wdReplaceAll

? ? ? ? With .Find

? ? ? ? ? ? .Text = "{$甲方}"

? ? ? ? ? ? .Replacement.Text = side_A

? ? ? ? End With

? ? ? ? .Find.Execute Replace:=wdReplaceAll

? ? ? With .Find

? ? ? ? ? ? .Text = "{$乙方}"

? ? ? ? ? ? .Replacement.Text = side_B

? ? ? End With

? ? ? .Find.Execute Replace:=wdReplaceAll

? ? End With

? ? '將寫入數(shù)據(jù)的模板另存為文檔文件

? ? objDoc.SaveAs strFileName

? ? objDoc.Saved = True? ? ? ? ? ?

? ? MsgBox "合同文本生成完畢堕花!", vbYes + vbExclamation

Exit_cmdExportToWord_Click:

? ? If Not objDoc Is Nothing Then objApp.Visible = True

? ? Set objApp = Nothing

? ? Set objDoc = Nothing

? ? Set objTable = Nothing

? ? Exit Sub

Err_cmdExportToWord_Click:

? ? MsgBox Err.Description, vbCritical, "出錯"

? ? Resume Exit_cmdExportToWord_Click

End Sub

核心技術(shù)部分完畢缘挽,那么如何使用呢呻粹?

1、單擊選定需要輸出數(shù)據(jù)制作合同的行的任意單元格腮郊。比如我在此選定了第一行中的B2單元格筹燕,當(dāng)然你可以選擇該行的任意一單元格庄萎。

2塘安、單擊“生成”按鈕兼犯,彈出合同模板選擇對話框。在此砸脊,選擇我們剛才制作好的合同模板纬霞。

3、打開應(yīng)用該模板瞳抓,然后隨之彈出生成后的合同另存為的對話框伏恐。這里文件名會被自動保存為合同編號翠桦。

4、生成完畢丛晌。以下是效果

? ? 以上是拋磚引玉的一個辦法茵乱,僅需對代碼中需要替換的部分進行更改,那么基本上可以做到復(fù)雜的輸出督勺。實際上技術(shù)難度沒多大斤贰,僅僅是利用了Office里面的宏替換原理而已。經(jīng)過改造瓷叫,在實際的生產(chǎn)環(huán)境中送巡,可以利用EXCEL從其它系統(tǒng)獲取數(shù)據(jù)骗爆,然后再批量制作各種WORD文檔。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末煮寡,一起剝皮案震驚了整個濱河市犀呼,隨后出現(xiàn)的幾起案子外臂,更是在濱河造成了極大的恐慌,老刑警劉巖挑童,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件跃须,死亡現(xiàn)場離奇詭異菇民,居然都是意外死亡投储,警方通過查閱死者的電腦和手機阔馋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門呕寝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人客蹋,你說我怎么就攤上這事孽江。” “怎么了辆琅?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵婉烟,是天一觀的道長暇屋。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么所宰? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任畜挥,我火速辦了婚禮仔粥,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蟹但。我一直安慰自己躯泰,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布华糖。 她就那樣靜靜地躺著麦向,像睡著了一般。 火紅的嫁衣襯著肌膚如雪客叉。 梳的紋絲不亂的頭發(fā)上诵竭,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天话告,我揣著相機與錄音,去河邊找鬼沙郭。 笑死,一個胖子當(dāng)著我的面吹牛裳朋,可吹牛的內(nèi)容都是我干的病线。 我是一名探鬼主播,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼鲤嫡,長吁一口氣:“原來是場噩夢啊……” “哼送挑!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起泛范,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤让虐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后罢荡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赡突,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年区赵,在試婚紗的時候發(fā)現(xiàn)自己被綠了惭缰。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡笼才,死狀恐怖漱受,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情骡送,我是刑警寧澤昂羡,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站摔踱,受9級特大地震影響虐先,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜派敷,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一蛹批、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧篮愉,春花似錦腐芍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至颠蕴,卻和暖如春埠对,著一層夾襖步出監(jiān)牢的瞬間络断,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工项玛, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留貌笨,地道東北人。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓襟沮,卻偏偏與公主長得像锥惋,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子开伏,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內(nèi)容