excel怎樣自動(dòng)生成word報(bào)告?

excel怎樣自動(dòng)生成word報(bào)告?

excel怎樣自動(dòng)生成word報(bào)告?

excel自動(dòng)生成word報(bào)告的方法:

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

excel怎樣自動(dòng)生成word報(bào)告?

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

excel怎樣自動(dòng)生成word報(bào)告?

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

excel怎樣自動(dòng)生成word報(bào)告?

4、打開VBA編輯器,添加項(xiàng)目引用。

具體操作過程為:選擇“工具”—“引用”,然后打開加載文件選擇框,選擇“microsoft Word16.0 Object Library”這個(gè)項(xiàng)目,如下圖:

excel怎樣自動(dòng)生成word報(bào)告?

在此,特別需要說明,Word項(xiàng)目這個(gè)必須引用起來,否則后期在執(zhí)行變量替換時(shí),VBA無法調(diào)用Word替換功能。

5、在按鈕控件下寫如下代碼,并將該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 ??'通過文件對(duì)話框生成另存為文件名????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”的文件擴(kuò)展名,如沒有則自動(dòng)加上????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?=?"{$合同編號(hào)}" ?????????????.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?+?vbExclamationExit_cmdExportToWord_Click: ????If?Not?objDoc?Is?Nothing?Then?objApp.Visible?=?True ????Set?objApp?=?Nothing ????Set?objDoc?=?Nothing ????Set?objTable?=?Nothing ????Exit?SubErr_cmdExportToWord_Click: ????MsgBox?Err.Description,?vbCritical,?"出錯(cuò)" ????Resume?Exit_cmdExportToWord_ClickEnd?Sub

推薦教程:《excel

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊9 分享