Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
28.03.2024, 17:03:45

Войти
Хотите поблагодарить участника за дельный совет? Нажмите [Повысить]. Так вы заслуженно поднимите репутацию активному участнику.
33 233 Сообщений в 5 454 Тем от 6 750 Пользователей
Последний пользователь: Alex1210
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Вопросы по Excel и VBA
| | |-+  Совместить несколько файлов word через Vba excel
Страниц: [1]   Вниз
Печать
Автор Тема: Совместить несколько файлов word через Vba excel  (Прочитано 2337 раз)
0 Пользователей и 1 Гость смотрят эту тему.
000vanya000
Новичок
*

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

Сообщений: 2


Просмотр профиля E-mail
« : 22.03.2023, 10:23:18 »

Добрый день, взял с этого форума макрос, создающий из таблицы экселя и шаблона несколько файлов ворд. Можно ли их в один объединить другим макросом или в этом исправить так, чтобы они писались в один файл сразу
Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

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

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



Просмотр профиля WWW
« Ответ #1 : 22.03.2023, 10:41:25 »

или в этом исправить так, чтобы они писались в один файл сразу
для этого надо плотно общаться на предмет понимания, что и как Вы хотите размещать, где будет храниться файл с общими данными и все в этом духе.
Ну а чтобы собрать в один из нескольких - я уже выкладывал на этом форуме код в этой теме: Макрос-собрать в 1 файл 100 файлов из 1-й папки: сначала 1.docx потом 2.docx
Записан

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

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

Сообщений: 2


Просмотр профиля E-mail
« Ответ #2 : 22.03.2023, 17:45:15 »

На выход у меня подаются файлы с названиями численными, 1.doc и тд, по возрастанию, но возможны пропуски (1,2,3,7,8,12) может быть и такое.
В итоговых файлах у меня таблицы одинакового формата, но с разными значениями и заголовками. Собственно хотел объединять все это дело в один файл с кучей таблиц.
Допустим есть папка на компе, в которой есть таблица Эксель с макросом. Он создает папку temp с кучей маленьких доков. Финальный док со всеми таблицами пусть будет создаваться начальной папке с файлом эксель. А папку temp вообще можно удалять тогда
Основное, что не могу понять, как это сделать именно через excel Vba. Без открытия ворда
Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

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

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



Просмотр профиля WWW
« Ответ #3 : 23.03.2023, 08:18:01 »

По ссылке готовый код. Да, он для Word. Но если потратить чуточку времени на изучение вопроса - то перенести его непосредственно в Excel не составит труда.
Здесь расписано как это сделать: Как из Excel обратиться к другому приложению
Но есть подозрение, что Вы об этом знаете, т.к. пытались именно к этой статье оставить комментарий(т.к. он к ней отношения не имеет - он не был опубликован).
Исходя из этого
Финальный док со всеми таблицами пусть будет создаваться начальной папке с файлом эксель
ниже приведен код:
Код: (vb)
Sub MergeFiles()
    Dim avFiles, lr As Long
    Dim objWrdApp As Object, docAct As Object, docNow As Object
   
    On Error Resume Next
    Set objWrdApp = GetObject(, "Word.Application")
    If objWrdApp Is Nothing Then
        Set objWrdApp = CreateObject("Word.Application")
    End If
    With Application.FileDialog(msoFileDialogFilePicker)
        .InitialFileName = "*.doc*"
        .AllowMultiSelect = True
        If .Show = False Then Exit Sub
        Set docAct = objWrdApp.Documents.Add
        For lr = 1 To .SelectedItems.Count
            Set docNow = objWrdApp.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
    objWrdApp.Visible = True
End Sub

запускаете код, выбираете файлы Word и все. После работы кода будет создан новый файл, в который будут перенесены все данные выбранных файлов.
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
Страниц: [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