Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
25.04.2024, 10:42:52

Войти
Добавляйтесь в нашу группу ВКонтакте - будьте в курсе всех новых событий сайта, узнавайте первым обо всех акциях и новых статьях!
33 243 Сообщений в 5 458 Тем от 6 763 Пользователей
Последний пользователь: tetrapack
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Вопросы по Word и VBA
| | |-+  Макрос-собрать в 1 файл 100 файлов из 1-й папки: сначала 1.docx потом 2.docx ...
Страниц: [1]   Вниз
Печать
Автор Тема: Макрос-собрать в 1 файл 100 файлов из 1-й папки: сначала 1.docx потом 2.docx ...  (Прочитано 4730 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Бахтиёр
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 8


Просмотр профиля E-mail
« : 29.08.2016, 13:52:03 »

Добрый день.
В папке "Фон" на диске D есть 100 файлов .docx
Их названия: 1.docx, 2.docx, 3.docx, ... 99.docx, 100.docx
В каждом файле по одной странице, максимум два.

Нужен макрос, который бы собрал в один файл все 100 файлов: он должен сначала взять 1.docx, потом 2.docx, потом 3.docx и так далее.
Заранее спасибо.
Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 831



Просмотр профиля WWW
« Ответ #1 : 29.08.2016, 13:57:06 »

Код когда-то писался мной для .rtf, но для docx тоже должен подойти:
Код: (vb)
Sub MergeFiles()
    Dim avFiles, lr As Long
    Dim docAct As Document, docNow As Document

    With Application.FileDialog(msoFileDialogFilePicker)
        .InitialFileName = "*.rtf"
        .AllowMultiSelect = True
        If .Show = False Then Exit Sub
        Set docAct = ActiveDocument
        For lr = 1 To .SelectedItems.Count
            Set docNow = Documents.Open(.SelectedItems(lr))
            docNow.Range.Copy
            docAct.Range(docAct.Range.End - 1).Paste
            docAct.Range(docAct.Range.End - 1).InsertBreak Type:=0
            docNow.Close 0
        Next lr
    End With
End Sub

Код должен располагаться в документе Word.
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
Бахтиёр
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 8


Просмотр профиля E-mail
« Ответ #2 : 29.08.2016, 14:21:34 »

Дмитрий, спасибо.
Нашёл ваш код на другом форуме, хотел написать, не успел, вы уже написали.
Потестил, всё нормально.
Думал может мне придётся 1 переименовать на 001, 2 на 002 и т.д. , ан-нет код и так работает как нужно при названии файлов: 1.docx, ... 9.docx, 10.docx, ... 100.docx.

Спасибо.
« Последнее редактирование: 29.08.2016, 14:23:10 от Бахтиёр » Записан
Страниц: [1]   Вверх
Печать
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru