Excel到word doc宏

时间:2016-06-06 11:11:38

标签: excel vba ms-word

我有一张excel表,其中第一列有页面名称,第二列有相应的内容。我需要单词文档来填充列表,因此第一个单元格将是文档的名称,第二个单元格将是相应的内容。

因此,如果有10个文档,我将填充10行。

如何使用excel宏执行此操作?

1 个答案:

答案 0 :(得分:0)

听起来您需要查看包含内容的所有行,并为每行生成Word文档,插入column2中的内容,然后使用column1中指定的名称保存它。您可以使用Excel VBA中的以下代码执行此操作:

Option Explicit

Public Sub CreateDocs()
Dim ws As Worksheet: Set ws = ThisWorkbook.Worksheets("Sheet1")
Dim lastRow, loopIndex, docName, docContent
Dim oWord: Set oWord = CreateObject("Word.Application")
Dim oDocument
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

For loopIndex = 1 To lastRow
    docName = ws.Range("A" & loopIndex).Value
    docContent = ws.Range("B" & loopIndex).Value
    Set oDocument = oWord.Documents.Add
    With oDocument
        .Range.Text = docContent
        .SaveAs "C:\temp\" & docName & ".docx"
    End With
    oDocument.Close
Next

Set oDocument = Nothing
oWord.Quit
Set oWord = Nothing

End Sub

此代码假定您的文档名称位于A列,文档内容位于B列,并且也从第1行开始。您需要调整数据的实际位置。

代码确定A列中最后填充的行(再次根据需要更改此行),然后遍历所有行,读取文档名称和内容,创建word文档,插入内容并使用指定名称保存文件到您的C:\temp文件夹(同样,您可以根据需要进行更改)。