我正在尝试将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
之类的枚举值,否则使用其相应的值。