Maison  >  Article  >  Les sujets  >  Comment générer automatiquement des rapports Word dans Excel ?

Comment générer automatiquement des rapports Word dans Excel ?

coldplay.xixi
coldplay.xixioriginal
2020-06-11 15:23:0318982parcourir

Comment générer automatiquement des rapports Word dans Excel ?

Comment générer automatiquement des rapports Word dans Excel ?

Comment générer automatiquement un rapport Word dans Excel :

1. Créez un fichier de modèle de contrat et remplacez les variables du contrat par des variables spéciales. Le schéma est le suivant :

Comment générer automatiquement des rapports Word dans Excel ?

2. Ajoutez les données principales du contenu du contrat dans EXCEL, le schéma est le suivant :

Comment générer automatiquement des rapports Word dans Excel ?

3 . Ajoutez un contrôle bouton Active X dans EXCEL et modifiez ses propriétés selon vos propres besoins.

Comment générer automatiquement des rapports Word dans Excel ?

4. Ouvrez l'éditeur VBA et ajoutez une référence de projet.

Le processus d'opération spécifique est le suivant : sélectionnez "Outils" - "Référence", puis ouvrez la boîte de sélection de fichier de chargement, sélectionnez le projet "Bibliothèque d'objets Microsoft Word16.0", comme indiqué ci-dessous :

Comment générer automatiquement des rapports Word dans Excel ?

Ici, il est particulièrement important de noter que le projet Word doit être référencé, sinon VBA ne pourra pas appeler la fonction de substitution Word lors d'une substitution de variable ultérieure.

5. Écrivez le code suivant sous le contrôle du bouton et enregistrez le fichier EXCEL au format 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"
    &#39;如果文件已存在,则删除已有文件    If Dir(strFileName) <> "" Then Kill strFileName
    &#39;打开模板文件    Set objApp = CreateObject("Word.Application")
    objApp.Visible = True
    Set objDoc = objApp.Documents.Open(strTemplates, , False)
 
  &#39;开始替换模板预置变量文本   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
 
    &#39;将写入数据的模板另存为文档文件    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

Tutoriel recommandé : "excel"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn