Vba объединение файлов word

In this article, we are glad to share with you 2 ways to quickly merge multiple Word documents into one via VBA.

In Word, there is the default built-in feature to help user combine or merge several documents into one. Details are explained in this article: How to Combine & Merge Multiple Word Documents into OneMerge Multiple Word Documents into One

With that method, you have to make a couple of clicks and the contents of next document always come right after that of the previous one. Therefore, we want to offer you quicker ways to do so.

Method 1: Merge Selected Documents into One

  1. First and foremost, create a new blank document.
  2. Trigger VBA editor in Word by pressing “Alt+ F11”.
  3. Next click “Normal”.
  4. Then click “Insert”.
  5. And choose “Module”.Click "Normal"->Click "Insert"->Click "Module"
  6. Double click on new module to open the editing space.
  7. Paste the following macro there:
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
  1. Next click “Run” or hit “F5”.Paste Macro->Click "Run"
  2. Now in “Browse” window, select multiple files by pressing “Ctrl” and click “OK”.Select Files->Click "OK"
  3. Then all contents in selected files will be pieced together in the new document, with texts of each document starting on a new page.

Note:

As we mentioned, this macro puts texts of each document on a new page. But if you need them to be one after another, you can alter some code lines in the macro. Just find line “If nEachSelectedFile < nTotalFiles Then”, the delete it and the next six lines as well.

Method 2: Merge All Documents in a Folder into One

In case you have a folder of files to be combined, then this macro shall work beautifully.

  1. To start off, install and run macro as described in method 1.
  2. Then replace macro with this one:
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
  1. Run the macro by clicking “Run”.
  2. Next you see “Browse” window open. Select the folder where you store all documents. And click “OK”.

Similarly, texts of each document starts on a new page. To make them stick together one after another, find and delete code line “.InsertBreak Type:=wdPageBreak”.

Protect Your Word Document Properly

One of the best ways to protect your Word documents is to back them up on a regular basis. With backups in hand, you will never have to fear the loss of data. Besides, it’s also advisable to get a tool to repair docx if any of them shall be damaged.

Author Introduction:

Vera Chen is a data recovery expert in DataNumen, Inc., which is the world leader in data recovery technologies, including damaged Excel and pdf repair software products. For more information visit www.datanumen.com

Иногда нам может потребоваться объединить несколько документов в один, когда вы используете приложения Microsoft Word. В Word вы можете объединить несколько документов Word в один одним из следующих сложных способов:

  • Объединяйте несколько документов один за другим с помощью функции «Вставить текст из файла»
  • Массовое объединение нескольких документов с помощью VBA
  • Объединяйте несколько документов одновременно с Kutools for Word
  • Объединяйте несколько документов один за другим с помощью функции копирования и вставки

Объедините несколько документов в один с помощью функции «Вставить текст из файла»

Вы можете объединить несколько документов в один, используя Текст из файла в Word, но при этом вы потеряете формат документов после объединения.

1. Создайте новый документ Word, поместите объединенные документы, а затем нажмите Вставить > объект > Текст из файла. Смотрите скриншот:

2. В открывшемся диалоговом окне «Вставить файл» (1) откройте папку с документами, которые вы собираетесь объединить; (2) выберите документы, которые вы хотите объединить; а потом (3) нажмите Вставить кнопка. Смотрите скриншот:

Функции: Держа Ctrl клавиша, вы можете выбрать несколько документов, щелкая их по одному; держа Shift клавишу, вы можете выбрать несколько смежных документов, щелкнув первый и последний.

3. Если документы, которые необходимо объединить, сохранены в разных папках, повторите шаги 1-2, указанные выше, по мере необходимости.

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

Быстрое объединение нескольких документов Word из множества папок в большом количестве в указанном порядке

Kutools for Word выпускает фантастический идти функция, помогающая пользователям быстро объединить несколько документов Word из многих папок. Эта функция не только сохранит исходный формат документов в объединенном файле, но и объединит документы в указанном вами порядке.

диалоговое окно слияния объявлений


Объедините несколько документов в один с помощью VBA

Кроме того, вы можете использовать VBA для объединения нескольких документов в один в Word.

1. Переместите все объединяемые документы Word в одну папку.

2. Переименуйте документы Word с помощью ряда последовательных имен. (1) Щелкните документ правой кнопкой мыши и выберите Переименовывать из контекстного меню, а затем введите новое имя, например Part1; (2) Повторите, чтобы переименовать другие документы. Смотрите скриншот:

3. Дважды щелкните, чтобы открыть документ, который вы поместите в начало объединенного файла.

4, нажмите Alt + F11 вместе, чтобы открыть окно Microsoft Visual Basic для приложения.

5. Нажмите Вставить > Модули, а затем вставьте ниже код VBA в новое окно модуля;

VBA: объединить несколько документов в Word

Sub MergeDocuments()
Application.ScreenUpdating = False
MyPath = ActiveDocument.Path
MyName = Dir(MyPath & "" & "*.docx")
i = 0
Do While MyName <> ""
If MyName <> ActiveDocument.Name Then
Set wb = Documents.Open(MyPath & "" & MyName)
Selection.WholeStory
Selection.Copy
Windows(1).Activate
Selection.EndKey Unit:=wdLine
Selection.TypeParagraph
Selection.Paste
i = i + 1
wb.Close False
End If
MyName = Dir
Loop
Application.ScreenUpdating = True
End Sub

Внимание: Этот VBA может объединять только документы Word с расширениями файлов docx. Если вам нужно объединить документы (.doc), замените DOCX в коде MyName = Dir (MyPath & «» & «* .docx») в док.

6.Щелкните Run или нажмите F5 ключ для применения VBA.

Примечание: вам необходимо переименовать документы с помощью ряда последовательных имен, иначе документы могут быть неупорядочены или потеряны в объединенном файле.


Объединяйте несколько документов в один документ и сохраняйте формат с помощью Kutools for Word

После того, как вы установили Kutools for Word, вам не нужно создавать новый пустой документ или помещать документ в ту же папку. С участием идти Kutools, вы можете быстро объединить несколько документов в один в Word. Пожалуйста, сделайте следующее:

Kutools for Word это удобная надстройка, облегчающая вашу работу и расширяющая возможности обработки текстовых документов. Бесплатная пробная версия для 60 дней! Получи это сейчас!

1. Нажмите Кутулс Плюс > идти. Смотрите скриншот:
doc объединить документы 01

2. В открывшемся диалоговом окне «Объединить документы» добавьте документы, которые вы хотите объединить: (1) Нажмите Добавить файлы кнопка; (2) В диалоговом окне Обзор откройте папку, содержащую документы, которые вы хотите объединить; (3) проведение Ctrl or Shift ключ для выбора этих документов; а потом (4) нажмите OK кнопка. Смотрите скриншот:

Функции:
(1) Если вам нужно объединить документы, которые сохранены в разных папках, повторите этот шаг, чтобы добавлять их один за другим;
(2) Вы также можете добавить все документы, сохраненные в одной папке, с помощью Add Folder кнопку.

3. Теперь вы вернетесь в диалоговое окно «Объединить документы», пожалуйста. (1) заказать эти документы Переместить вверх и Переместить вниз пуговицы; (2) указать перерыв между документами из Перерыв между документами раскрывающийся список; а потом (3) нажмите идти кнопка. Смотрите скриншот:

Теперь все указанные документы Word объединены в новый документ, как показано ниже:
результаты слияния объявлений v8.9

Примечание: К вашему сведению, исходное форматирование всех объединенных документов зарезервировано в объединенном результате.

Конечно, вы можете сначала открыть все документы Word, а затем объединить их вручную путем копирования и вставки.

Просмотр и редактирование нескольких документов Word с вкладками в Firefox, Chrome, Internet Explore 10!

Возможно, вы знакомы с просмотром нескольких веб-страниц в Firefox / Chrome / IE и возможностью переключения между ними, легко щелкая соответствующие вкладки. Здесь вкладка Office поддерживает аналогичную обработку, которая позволяет просматривать несколько документов Word в одном окне Word и легко переключаться между ними, щелкая их вкладки. Нажмите, чтобы получить полную бесплатную пробную версию!
Просматривайте несколько документов Word в одном окне как Firefox


Относительные статьи:


Рекомендуемые инструменты для повышения производительности Word

выстрел kutools word kutools tab 1180x121

выстрел kutools word kutools plus tab 1180x120

Kutools For Word — Более 100 расширенных функций для Word, сэкономьте 50% времени

  • Сложные и повторяющиеся операции можно производить разово за секунды.
  • Вставляйте сразу несколько изображений из папок в документ Word.
  • Объединяйте и объединяйте несколько файлов Word из папок в одну в желаемом порядке.
  • Разделите текущий документ на отдельные документы в соответствии с заголовком, разрывом раздела или другими критериями.
  • Преобразование файлов между Doc и Docx, Docx и PDF, набор инструментов для общих преобразований и выбора и т. Д.
title keywords f1_keywords ms.prod api_name ms.assetid ms.date ms.localizationpriority

Application.MergeDocuments method (Word)

vbawd10.chm158335447

vbawd10.chm158335447

word

Word.Application.MergeDocuments

445fe4df-a41a-6be0-f646-d310c71ec25e

06/08/2017

medium

Application.MergeDocuments method (Word)

Compares two documents and returns a Document object that represents the document that contains the differences between the two documents, marked using tracked changes.

Syntax

expression. MergeDocuments( _OriginalDocument_ , _RevisedDocument_ , _Destination_ , _Granularity_ , _CompareFormatting_ , _CompareCaseChanges_ , _CompareWhitespace_ , _CompareTables_ , _CompareHeaders_ , _CompareFootnotes_ , _CompareTextboxes_ , _CompareFields_ , _CompareComments_ , _OriginalAuthor_ , _RevisedAuthor_ , _FormatFrom_ )

expression An expression that returns an Application object.

Parameters

Name Required/Optional Data type Description
OriginalDocument Required Document Specifies the path and file name of the original document.
RevisedDocument Required Document Specifies the path and file name of the revised document to which to compare the original document.
Destination Optional WdCompareDestination Specifies whether to create a new file or whether to mark the differences between the two documents in the original document or in the revised document. Default value is wdCompareDestinationNew.
Granularity Optional WdGranularity Specifies whether changes are tracked by character or by word. Default value is wdGranularityWordLevel.
CompareFormatting Optional Boolean Specifies whether to mark differences in formatting between the two documents. Default value is True.
CompareCaseChanges Optional Boolean Specifies whether to mark differences in case between the two documents. Default value is True.
CompareWhitespace Optional Boolean Specifies whether to mark differences in white space, such as paragraphs or spaces, between the two documents. Default value is True.
CompareTables Optional Boolean Specifies whether to compare the differences in data contained in tables between the two documents. Default value is True.
CompareHeaders Optional Boolean Specifies whether to compare differences in headers and footers between the two documents. Default value is True.
CompareFootnotes Optional Boolean Specifies whether to compare differences in footnotes and endnotes between the two documents. Default value is True.
CompareTextboxes Optional Boolean Specifies whether to compare differences in the data contained within text boxes between the two documents. Default value is True.
CompareFields Optional Boolean Specifies whether to compare differences in fields between the two documents. Default value is True.
CompareComments Optional Boolean Specifies whether to compare differences in comments between the two documents. Default value is True.
OriginalAuthor Optional String Specifies the name of the author of the original document.
RevisedAuthor Optional String Specifies the name of the person to use for unattributed changes after merging two documents.
FormatFrom Optional WdMergeFormatFrom Specifies the document from which to retain formatting.

Return value

Document

See also

Application Object

[!includeSupport and feedback]

0 / 0 / 0

Регистрация: 19.09.2014

Сообщений: 6

1

03.10.2014, 14:03. Показов 4674. Ответов 7


Студворк — интернет-сервис помощи студентам

Доброго времени суток форумчане! Нашел на форуме тему » Объединить заданные пользователем открытые файлы word в один файл». «Апострофф» предложил отличный код, который сводит в один word-кий файл все закрытые файлы одного каталога. Код работает. Как доработать код, что бы после объединения, удалялись все таблицы с объединенного файла. Заранее всем спасибо.



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

03.10.2014, 14:03

7

0 / 0 / 0

Регистрация: 19.09.2014

Сообщений: 6

03.10.2014, 16:29

 [ТС]

3

«Апострофф» доброго времени суток! Спасибо за подсказки. «Объединить закрытые файлы word одного каталога в один файл» работает, но таблицы в колонтитулах не убирает. Как удалить и колонтитулы? Спасибо.



0



0 / 0 / 0

Регистрация: 19.09.2014

Сообщений: 6

06.10.2014, 07:51

 [ТС]

4

Доброго времени суток! Задаю папку и пытаюсь открыть файлы, но что то не так. Как подправить код, что бы выбирал папку вне зависимости, где находится файл объединения. Спасибо

Вложения

Тип файла: rar 1.rar (21.3 Кб, 32 просмотров)



0



shanemac51

Модератор

Эксперт MS Access

11341 / 4660 / 748

Регистрация: 07.08.2010

Сообщений: 13,497

Записей в блоге: 4

06.10.2014, 08:20

5

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Sub mmCommandButton1_Click()
'' немного отладки ввела, у вас не улалялась кнопка, с которой вызывался макрос
''------------------------------
''ctrl+f8+выполнить
 
Dim strFile As String
With Application.FileDialog(msoFileDialogFolderPicker)
    If Len(sPath) > 0 Then
      .InitialFileName = sPath
    End If
    .ButtonName = "Выбрать"
    .Title = "Выберите исходную папку"
    If .Show Then
    ''ThisDocument.Tables(1).Cell(1, 1).Range.Text = .SelectedItems(1)
    Else '"" & sMask
    End If
End With
  
strFile = Dir(strFolder & "*.doc")
Do While strFile <> ""
Debug.Print strFile
Selection.InsertFile strFolder & strFile
strFile = Dir
Loop
 
    Dim tbl As Table, j1
    Debug.Print
    j1 = Word.ActiveDocument.Tables.Count
    For Each tbl In ActiveDocument.Tables
    j1 = j1 - 1
    Debug.Print "*"; j1;
        tbl.Delete
    Next
 
    Dim Sha As ShapeRange
    ActiveDocument.Select
    For Each Sha In Selection.ShapeRange
        Sha.Delete
    Next
 
End Sub



0



0 / 0 / 0

Регистрация: 19.09.2014

Сообщений: 6

06.10.2014, 09:20

 [ТС]

6

Доброе утро shanemac51! Спасибо за отзывчивость. При выполнении макроса, я выбираю папку и файлы объединяются. Когда я выбираю другую папку то файлы не объединяются а загружаются предыдущие.



0



Апострофф

Заблокирован

06.10.2014, 10:13

7

Лучший ответ Сообщение было отмечено nwcop как решение

Решение

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
OPTION EXPLICIT'!!!!!!!!!!!!!!!
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
Private Sub CommandButton1_Click()
Dim strFile As String, strFolder As String
With Application.FileDialog(msoFileDialogFolderPicker)
'    If Len(sPath) > 0 Then
'      .InitialFileName = sPath
'    End If
    .ButtonName = "Выбрать"
    .Title = "Выберите исходную папку"
    If .Show Then 
      strFolder = .SelectedItems(1) 'ThisDocument.Tables(1).Cell(1, 1).Range.Text = .SelectedItems(1) Else '"" & sMask
    ELSE
      EXIT SUB
    ENDIF
End With
  
strFile = Dir(strFolder & "*.doc")
Do While strFile <> ""
Selection.InsertFile strFolder & "" & strFile
strFile = Dir
Loop
 
    Dim tbl As Table
    For Each tbl In ActiveDocument.Tables
        tbl.Delete
    Next
 
    Dim Sha As ShapeRange
    For Each Sha In ActiveDocument.Shapes
        Sha.Delete
    Next
 
End Sub



1



0 / 0 / 0

Регистрация: 19.09.2014

Сообщений: 6

06.10.2014, 13:12

 [ТС]

8

Добрый день Апострофф! Спасибо огромное. Протестировали все работает.



0



Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.

Страницы 1

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Сообщений [ 1 ]

1 11.08.2015 11:38:05

  • Объединение группы файлов Word с помощью макроса
  • Alex_Gur
  • Модератор
  • Неактивен
  • Откуда: Москва
  • Зарегистрирован: 28.07.2011
  • Сообщений: 2,758
  • Поблагодарили: 492

Тема: Объединение группы файлов Word с помощью макроса

В ряде случаев бывает необходимо быстро объединить несколько файлов Word в определенной последовательности.
Для выполнения такого объединения в пользовательском режиме используется команда Текст из файла (вкладка Главная – группа Текст – Объект – Текст из файла).
Однако, если файлов много, то выполнить большое количество подобных операций бывает довольно затруднительно.
В этом случае на помощь приходит макрос:

Sub UniteFiles01()
    Dim path1 As String
    path1 = ActiveDocument.Path & ""

    Selection.InsertFile filename:=path1 & "File 01.doc", Range:="", ConfirmConversions:= _
        False, Link:=False, Attachment:=False
    Selection.TypeParagraph

    Selection.InsertFile filename:=path1 & "File 02.doc", Range:="", ConfirmConversions:= _
        False, Link:=False, Attachment:=False
    Selection.TypeParagraph

    Selection.InsertFile filename:=path1 & "File 03.doc", Range:="", ConfirmConversions:= _
        False, Link:=False, Attachment:=False
    Selection.TypeParagraph

    ' (Повторите нужное количество раз)
End Sub

Сводный файл предварительно должен быть сохранен в ту же папку, что и объединяемые файлы. Он должен быть открыт и являться активным.
Вместо выражений File 01.doc, File 02.doc, File 03.doc и т.д. указываются реальные наименования объединяемых файлов в нужной последовательности.
(Для более быстрого получения перечня файлов в текущей папке можно предварительно использоваться команда Windows (скрипт)

Желаю всем успешной работы!

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк — 41001162202962; на WebMoney — R581830807057.

Сообщений [ 1 ]

Страницы 1

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Похожие темы

  • вирутальное объединение файлов
  • Создание гиперссылки с помощью макроса Word
  • Импорт переменной, связь Word и Excel с помощью макроса
  • Сохранение текста в FB2 c помощью макроса
  • Перебор абзацев с помощью макроса
  • Заполнить выпадающий список с помощью макроса
  • Форматирования текста в Worde с помощью макроса
  • Выпадающий список наполнить с помощью макроса

Объединение группы файлов Word с помощью макроса

Для всех пользователей текстового редактора Microsoft Word будет полезно познакомиться со встроенными функциями и настройками этой программы. Наш сайт о Microsoft Office Word даст ответ про: excel текст в нижний регистр.

На форуме сайта Ворд Эксперт вам предложат различные варианты настроек, в зависимости от поставленных задач. На портале о Microsoft Office Word вы узнаете про: антоним к слову звильнити.
Так существуют схемы для быстрого удаления лишних пробелов из текста, переформатирования и оформления в одном стиле различных кусков, работы с таблицами и многого другого. На портале о Microsoft Office Word вы узнаете про: рисунки для границы для word.

Здесь вы найдете шаблоны для часто повторяющихся схем оформления текста, макросы практически для любых операций, готовые решения и пошаговые инструкции для написания. Наш сайт о Microsoft Office Word даст ответ про: границы для ms office 2010.
Также вы можете оставить заявку на любую работу, связанную с Вордом.

Понравилась статья? Поделить с друзьями:
  • Vba обращение к файлу excel
  • Vba обработка файлов excel
  • Vba обработка строки excel
  • Vba обновление полей word
  • Vba нумерованный список в word