Инструмент для объединения файлов MS Word - PullRequest
5 голосов
/ 10 ноября 2008

У меня огромное количество файлов Word, которые мне нужно объединить (объединить) в один файл, и для слияния Word потребуется много времени (один за другим). Вы испытали какой-либо инструмент, который может справиться с этой работой?

Ответы [ 3 ]

4 голосов
/ 10 ноября 2008
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"

У меня один вопрос - почему вы хотите сделать такую ​​вещь (по крайней мере, с «огромным количеством» документов)?

2 голосов
/ 10 ноября 2008

Я наткнулся на пост Грэхэма Скана некоторое время назад. Возможно, вы начали:

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
0 голосов
/ 10 ноября 2008

Вы пытались использовать Word COM API? Вы можете автоматизировать многие вещи - может быть, вы можете автоматизировать слияние.

Вам действительно нужно выполнить фактическое слияние или вы хотите объединить файлы вместе. Две вещи совершенно разные.

Объединение используется, когда у вас есть две версии исходного файла с (потенциально конфликтующими) изменениями. Я не могу понять, как у вас появилось бы «огромное количество» файлов, в которых вам нужно было объединить все вместе. Это было бы абсолютным кошмаром конфликтов. Вы хотите объединить их наборы в отдельные файлы?

Присоединение происходит, когда вы хотите объединить их один за другим. Это было бы намного проще сделать. Это вполне возможно при использовании COM API.

...