首頁 > 專題 > Excel > 主體

excel怎麼自動產生word報告?

coldplay.xixi
發布: 2020-06-11 15:23:03
原創
18890 人瀏覽過

excel怎麼自動產生word報告?

excel怎麼會自動產生word報表?

excel自動產生word報告的方法:

1、製作合約範本文件,把合約變數部分用特殊變數取代。圖示如下:

excel怎麼自動產生word報告?

2、在EXCEL裡面加入合約主要內容數據,圖示如下:

excel怎麼自動產生word報告?

##3 、在EXCEL裡面加入一個Active X按鈕控件,根據自身需求修改其屬性。

excel怎麼自動產生word報告?

4、開啟VBA編輯器,新增項目參考。

特定操作過程為:選擇“工具”—“引用”,然後開啟載入檔案選擇框,選擇“Microsoft Word16.0 Object Library”這個項目,如下圖:

excel怎麼自動產生word報告?

在此,特別需要說明,Word專案這個必須引用起來,否則後期在執行變數替換時,VBA無法呼叫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 '将数据导出到此文件    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)
 
  '开始替换模板预置变量文本   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
 
    '将写入数据的模板另存为文档文件    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, "出错"
    Resume Exit_cmdExportToWord_ClickEnd Sub
登入後複製

推薦教學:《

excel

以上是excel怎麼自動產生word報告?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!