将Word文档数据合并为CSV

时间:2017-08-29 18:34:07

标签: csv word-vba

我目前有一个CSV文件,它有多个不同的信息,但它的文档名称总是作为第一列。我有代码打开CSV,然后将其读入数组,但是当它打开文档进行合并时,它将打开文档并合并所有行,使当前4个文档总共在1中。

我想要的是每行1个文档,然后关闭合并文档并打开下一个用于合并然后关闭等等每行。每行可以有不同的文档名称。

以下是我目前正在使用的代码:

Dim LLCODE$, FileNo$, Defendant$
Set fs = CreateObject("Scripting.FileSystemObject")
Set objTextFile = fs.OpenTextFile(UserDir$ + "combined12.csv")
objTextFile.skipline
Do Until objTextFile.AtEndofLine
    arrStr = Split(objTextFile.Readline, ",")
    LLCODE$ = arrStr(0)
    FileNo$ = arrStr(26)
    Defendant$ = arrStr(33)

    testdoc = FormDir$ + LLCODE$ + ".docx"

    Set oWord = CreateObject("Word.Application")
    With oWord
        .WindowState = wdWindowStateMaximize
        Set oDoc = Documents.Open(testdoc, ConfirmConversions:=True, ReadOnly:=False, Visible:=True)

        With oDoc.MailMerge
            .OpenDataSource Name:=UserDir$ + "combined12.csv", ConfirmConversions:=True, LinkToSource:=True
            .Execute 'Pause:=something
        End With

        ActiveDocument.SaveAs (UserDir$ + "Merge\" + FileNo$ + "-" + Defendant$ + ".docx")
        ActiveDocument.Close

        .WindowState = wdWindowStateMaximize
        'MsgBox ActiveDocument.Name
        ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
        Set oDoc = Nothing
    End With
    Set oWord = Nothing

0 个答案:

没有答案