我需要将大量的Word文件合并(加入)到一个文件中,并且使用Word合并(一个接一个)将非常耗时。您是否经历过任何可以处理这项工作的工具?
答案 0 :(得分:4)
Sub MergeAllDocuments(AllDocumentsPath as String, MasterDocumentPath as String)
Dim MasterDocument As Document
Set MasterDocument = Documents.Open(FileName:=MasterDocumentPath)
TheDocumentPath = Dir(AllDocumentsPath , vbNormal)
While TheDocumentPath <> ""
' Append the next doc to the end of the master doc. (The
' special "\EndOfDoc" bookmark is always available!)
MasterDocument.Bookmarks("\EndOfDoc").Range.InsertFile TheDocumentPath
TheDocumentPath = Dir
Wend
MasterDocument.Save
End Sub
MergeAllDocuments "C:\MySeparateDocuments\*.doc", "C:\MasterDocument.doc"
我有一个问题 - 你为什么要做这样的事情(至少有“数量庞大”的文件)?
答案 1 :(得分:2)
前一段时间我遇到了Graham Skan的一篇文章。它可能会让你开始:
Sub InsertFiles()
Dim strFileName As String
Dim rng As Range
Dim Doc As Document
Const strPath = "C:\Documents and Settings\Graham Skan\My Documents\Allwork\" 'adjust as necessary '"
Set Doc = Documents.Add
strFileName = Dir$(strPath & "\*.doc")
Do
Set rng = Doc.Bookmarks("\EndOfDoc").Range
If rng.End > 0 Then 'section break not necessary before first document.'
rng.InsertBreak wdSectionBreakNextPage
rng.Collapse wdCollapseEnd
End If
rng.InsertFile strPath & "\" & strFileName
strFileName = Dir$()
Loop Until strFileName = ""
End Sub
答案 2 :(得分:0)
您是否尝试过使用Word COM api?您可以自动执行许多操作 - 也许您可以自动执行合并。
您是否真的需要进行实际合并,或者您是否想要将这些文件合并在一起。这两件事情完全不同。
当您有两个版本的原始文件(可能存在冲突)更改时,将使用合并。我真的不知道你将如何拥有一个“大量”的文件,你需要将它们合并在一起。这将是冲突的绝对噩梦。你的意思是将它们的集合合并到单个文件中吗?
加入将是你想要一个接一个地连接它们。这将更容易做到。这很可能使用COM api。