模板:使用Excel工作表数据自动生成多个Word文档

2023-12-12 15:35:38 浏览数 (1)

标签:VBA,Office整合应用

这是在网上收集到的一个示例,可以使用Excel工作表数据自动生成多个Word文档邮件。

这个示例由同一个文件夹中的两个文档组成。一个是Excel工作簿,其中的工作表中数据就是要填入Word文档中的数据;一个是Word文档,一个模板,其中的内容就是邮件的主要内容,有多个空白域,用来填充来自Excel工作表中的数据。

在Excel工作表中有多少行数据,就会生成多少个Word文档。

VBA程序代码如下:

代码语言:javascript复制
Sub fillwordform()
 Dim appword As Object
 Dim Doc As Object
 Dim Path As String
 Dim lngRow As Long
 Dim lngCount As Long
 ' 修改为你的文件所在的实际路径
 Path = "C:UsersexcelperfectDesktopGenerate Letter.docx"
 Set appword = CreateObject("Word.Application")
 For lngRow = 2 To Sheets("Record Set").Cells(Rows.Count, 1).End(xlUp).Row
   Set Doc = appword.Documents.Open(Path, , True)
   With Doc
     .FormFields("strName").Result = Sheets("Record Set").Cells(lngRow, 4).Value
     .FormFields("strName1").Result = Sheets("Record Set").Cells(lngRow, 4).Value
     .FormFields("strAddress1").Result = Sheets("Record Set").Cells(lngRow, 5).Value
     .FormFields("strAddress2").Result = Sheets("Record Set").Cells(lngRow, 6).Value
     .FormFields("strAddress3").Result = Sheets("Record Set").Cells(lngRow, 7).Value
     .FormFields("strAddress4").Result = Sheets("Record Set").Cells(lngRow, 8).Value
     .FormFields("strAddress5").Result = Sheets("Record Set").Cells(lngRow, 9).Value
     .FormFields("strMake").Result = Sheets("Record Set").Cells(lngRow, 1).Value
     .FormFields("strModel").Result = Sheets("Record Set").Cells(lngRow, 2).Value
     .FormFields("strMake1").Result = Sheets("Record Set").Cells(lngRow, 1).Value
     .FormFields("strModel1").Result = Sheets("Record Set").Cells(lngRow, 2).Value
     .FormFields("strDescription").Result = Sheets("Record Set").Cells(lngRow, 3).Value
   End With
   lngCount = lngCount   1
   ' 修改为你的文件所在的实际路径
   Doc.SaveAs "C:UsersexcelperfectDesktoppTest" & lngCount & ".docx"
   Doc.Close
 Next lngRow
 Set Doc = Nothing
 Set appword = Nothing
End Sub

有兴趣的朋友,可以在完美Excel微信公众号中发送消息:

Excel自动生成多个Word文档

获取示例下载链接。

或者,直接到知识星球App完美Excel社群下载该示例文档。

你可以将其作为模板,将Excel工作表和Word文档按照你的内容进行修改后使用。

0 人点赞