В этой статье мы рады поделиться с вами двумя способами быстрого объединения нескольких документов Word в один с помощью VBA.
В Word есть встроенная функция по умолчанию, помогающая пользователю объединять или объединять несколько документов в один. Подробности описаны в этой статье: Как объединить и объединить несколько документов Word в один
При таком способе вам нужно сделать пару кликов, и содержимое следующего документа всегда появится сразу после содержимого предыдущего. Поэтому мы хотим предложить вам более быстрые способы сделать это.
Способ 1: объединить выбранные документы в один
- В первую очередь, создайте новый пустой документ.
- Запустите редактор VBA в Word, нажав «Alt + F11».
- Далее нажмите «Обычный».
- Затем нажмите «Вставить».
- И выберите «Модуль».
- Дважды щелкните новый модуль, чтобы открыть пространство редактирования.
- Вставьте туда следующий макрос:
Sub MergeMultiDocsIntoOne()
Dim dlgFile As FileDialog
Dim nTotalFiles As Integer
Dim nEachSelectedFile As Integer
Set dlgFile = Application.FileDialog(msoFileDialogFilePicker)
With dlgFile
.AllowMultiSelect = True
If .Show <> -1 Then
Exit Sub
Else
nTotalFiles = .SelectedItems.Count
End If
End With
For nEachSelectedFile = 1 To nTotalFiles
Selection.InsertFile dlgFile.SelectedItems.Item(nEachSelectedFile)
If nEachSelectedFile < nTotalFiles Then
Selection.InsertBreak Type:=wdPageBreak
Else
If nEachSelectedFile = nTotalFiles Then
Exit Sub
End If
End If
Next nEachSelectedFile
End Sub
- Затем нажмите «Выполнить» или нажмите «F5».
- Теперь в окне «Обзор» выберите несколько файлов, нажав «Ctrl», и нажмите «ОК».
- Затем все содержимое выбранных файлов будет объединено в новом документе, при этом текст каждого документа будет начинаться на новой странице.
Примечание:
Как мы уже упоминали, этот макрос помещает тексты каждого документа на новую страницу. Но если вам нужно, чтобы они были друг за другом, вы можете изменить некоторые строки кода в макросе. Просто найдите строку «If nEachSelectedFile < nTotalFiles Then», удалите ее и следующие шесть строк.
Способ 2: объединить все документы в папке в один
Если у вас есть папка с файлами, которые нужно объединить, то этот макрос прекрасно сработает.
- Для начала установите и запустите макрос, как описано в методе 1.
- Затем замените макрос на этот:
Sub MergeFilesInAFolderIntoOneDoc()
Dim dlgFile As FileDialog
Dim objDoc As Document, objNewDoc As Document
Dim StrFolder As String, strFile As String
Set dlgFile = Application.FileDialog(msoFileDialogFolderPicker)
With dlgFile
If .Show = -1 Then
StrFolder = .SelectedItems(1) & "\"
Else
MsgBox ("No folder is selected!")
Exit Sub
End If
End With
strFile = Dir(StrFolder & "*.docx", vbNormal)
Set objNewDoc = Documents.Add
While strFile <> ""
Set objDoc = Documents.Open(FileName:=StrFolder & strFile)
objDoc.Range.Copy
objNewDoc.Activate
With Selection
.Paste
.InsertBreak Type:=wdPageBreak
.Collapse wdCollapseEnd
End With
objDoc.Close SaveChanges:=wdDoNotSaveChanges
strFile = Dir()
Wend
objNewDoc.Activate
Selection.EndKey Unit:=wdStory
Selection.Delete
End Sub
- Запустите макрос, нажав «Выполнить».
- Затем вы увидите открытое окно «Обзор». Выберите папку, в которой вы храните все документы. И нажмите «ОК».
Аналогично, текст каждого документа начинается на новой странице. Чтобы они располагались один за другим, найдите и удалите строку кода «.InsertBreak Type:=wdPageBreak».
Защитите свой документ Word должным образом
Один из лучших способов защитить документы Word — регулярно создавать их резервные копии. Имея под рукой резервные копии, вам никогда не придется бояться потери данных. Кроме того, также желательно получить инструмент для восстановить документ если какой-либо из них будет поврежден.
Об авторе:
Вера Чен — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая поврежденный Excel и pdf ремонт программных продуктов. Для получения дополнительной информации посетите www.datanumen.com


