合并Word文档



我正在尝试将6个文档(在一个文件夹中)粘贴到一个包含所有这些文档的新文档中。VBA代码应该从创建所有文档的Excel模板中运行,然后应该通过宏合并在一起。

但是,我得到

运行时间错误438:对象不支持此属性或方法

每次我尝试运行InsertFile行时。我猜问题在于从excel到word vba(?)

的过渡

有什么想法或想法?

  Sub MergeALL()
       Dim objWord
       Dim objDoc
       Set objWord = CreateObject("Word.Application")
       Set objDoc = objWord.Documents.Add
       objWord.Visible = True
'opens a new word document
Documents.Add
Dir "\rz_sixtuserHomePictures" 'change to OutputFilePath ?
MyName = Dir("*.docx")
While MyName <> ""
 With Selection
 .InsertFile Filename:=MyName, ConfirmConversions:=False, Link:=False, Attachment:=False
 .InsertParagraphAfter
 .InsertBreak Type:=wdSectionBreakNextPage
 .Collapse Direction:=wdCollapseEnd
 End With
 MyName = Dir()
Wend
End Sub

当您通过Dir循环循环所有发现的文档时,
InsertFile每个文件时,您必须再次添加文件路径:

Sub MergeALL()
    Dim objWord As Object
    Dim objDoc As Object
    Dim myPath As String, myFile As String
    Set objWord = CreateObject("Word.Application")
    objWord.Visible = True
    Set objDoc = objWord.Documents.Add
    myPath = "\rz_sixtuserHomePictures"
    myFile = Dir(myPath & "*.docx", vbNormal + vbReadOnly + vbHidden)
    While myFile <> ""
        With objDoc.Bookmarks("StartOfDoc").Range
            .InsertFile Filename:=myPath & myFile, _
                ConfirmConversions:=False, Link:=False, Attachment:=False
            .InsertBreak Type:=2    ' wdSectionBreakNextPage = 2
        End With
        myFile = Dir()
    Wend
    objDoc.Characters(1).Delete
End Sub

如果您添加了" Microsoft Word X.X对象库"的引用,则可以使用wdCollapseEnd之类的枚举值,否则使用其相应的值。

最新更新