Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Объединение файлов Word в один средствами VBA / 22 сообщений из 22, страница 1 из 1
19.10.2014, 10:02
    #38780936
ДеРибас
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение файлов Word в один средствами VBA
Ответа на этот вопрос не нашел, так что если пропустил эту тему в архивах, заранее прошу прощения.
Тема такая. Из полей формы или напрямую из запросов данные экспортируются в шаблоны документов Word на закладки - это все довольно подробно разобрано на этом форуме под разными углами, вопросов нет. Проблема другая.
Нажатием кнопки формируется документ Word, в котором на каждой странице по акту выполненных работ. Мудохаться с каждым актом отдельно бредово, разумеется, лучше сформировать один документ на все акты и распечатать. Цикл напрашивается сам собой - это понятно. Итак, формируем первый акт, никаких проблем. Вопрос: как к нему теперь присоединить второй акт, третий и т.д.? По идее, по циклу экспортируем в шаблон каждый по отдельности акт и присоединяем к конечному документу. Как это делается? Сразу следующий вопрос: явно должна использоваться команда на разрыв страницы, чтобы каждый акт должен быть на отдельной странице - как это прописывается в VBA?
Заранее спасибо за ответы.
...
Рейтинг: 0 / 0
19.10.2014, 11:13
    #38780946
alex77755
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение файлов Word в один средствами VBA
авторМудохаться с каждым актом отдельно бредово
А какая в принципе разница?
Всё-равно в цикле будешь обрабатывать.
Как вставть разрыв = запиши макрос и посмотри.
А вот на счёт му.....
авторданные экспортируются в шаблоны документов Word на закладки
Это тебя не смущает?
Если будешь вставлять в документ шаблон, а у него есть закладки...
Уверен, что не получится, в лучшем случае, каша. В худшем конфликт имён.
ИМХО: по одному проще будет
...
Рейтинг: 0 / 0
19.10.2014, 11:32
    #38780953
ДеРибас
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение файлов Word в один средствами VBA
alex77755,
Чтобы не было каши и конфликтов, в цикле задумано готовить каждый акт в отдельном документе и присоединять его к конечному.
То есть, создали из шаблона один акт - вставили в документ. Затем второй акт - присоединили к первому акту. Затем третий...
В этом же и вопрос, для ясности выведенный в заголовок: как соединять документы Word. Готовые файлы соединять!
...
Рейтинг: 0 / 0
19.10.2014, 13:28
    #38780988
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение файлов Word в один средствами VBA
ДеРибас,

Есть заготовка, меняйте под себя:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Sub MergeFiles()
    Dim avFiles, lr As Long
    Dim docAct As Document, docNow As Document

    With Application.FileDialog(msoFileDialogFilePicker)
        .InitialFileName = "*.doc*"
        .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
...
Рейтинг: 0 / 0
19.10.2014, 14:59
    #38781044
ДеРибас
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение файлов Word в один средствами VBA
The_Prist,

Спасибо, мне кажется это то, что нужно, вечером буду разбираться. Жаль, что без комментариев, чтобы внятно понимать каждое действие, но по названию методов о многом можно догадаться.
...
Рейтинг: 0 / 0
19.10.2014, 19:09
    #38781183
ДеРибас
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение файлов Word в один средствами VBA
The_Prist,

Что-то Range не подключается. Если набирать код самостоятельно, надеясь на подсказку после точки, то этот метод даже не предлагается. Пытался прогуглить его, он везде упоминается только в связи с екселем. Отсутствие комментариев играет свою роль - все на ощупь, как баран на новые ворота.
...
Рейтинг: 0 / 0
19.10.2014, 20:35
    #38781253
ДеРибас
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение файлов Word в один средствами VBA
Записал операцию макросом. Код вышел такой:

Код: vbnet
1.
2.
3.
4.
  Selection.MoveDown Unit:=wdScreen, Count:=2
  Selection.InsertBreak Type:=wdPageBreak
  Selection.InsertFile FileName:="2.docx", Range:="", ConfirmConversions:= _
  False, Link:=False, Attachment:=False
...
Рейтинг: 0 / 0
19.10.2014, 21:14
    #38781267
alex77755
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение файлов Word в один средствами VBA
авторЗатем второй акт - присоединили к первому акту
Это-то понятно.
Но что делать с закладками?
ИМХО
Может возникнуть конфликт имён.
Тогда перед вставкой, наверное, надо удалить закладки сначала?
...
Рейтинг: 0 / 0
19.10.2014, 21:15
    #38781270
alex77755
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение файлов Word в один средствами VBA
авторГотовые файлы соединять!
Надо понимать, что закладки удалены?
...
Рейтинг: 0 / 0
19.10.2014, 23:01
    #38781322
ДеРибас
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение файлов Word в один средствами VBA
alex77755,
А, понял вопрос. Хм... Если возникнет конфликт, можно и удалять. Спасибо, что обозначили возможную проблему. Буду держать в уме.
...
Рейтинг: 0 / 0
19.10.2014, 23:07
    #38781323
ДеРибас
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение файлов Word в один средствами VBA
alex77755,

Хотя стоп! Я ж пошел по пути не объединения файлов, а через код, подсказанный макросом. А он файлы не объединяет, а копирует текст из второго файла и добавляет в первый. Текст! Без закладок, хотя и в полном форматировании.
...
Рейтинг: 0 / 0
20.10.2014, 00:09
    #38781335
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение файлов Word в один средствами VBA
А почему просто не почитать справку Ворда по термину "Главный документ"?
...
Рейтинг: 0 / 0
20.10.2014, 00:10
    #38781337
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение файлов Word в один средствами VBA
ДеРибас,

Мои комментарии в таком случае должны быть полностью по всей объектной модели Word. Range - один из базовых объектов Word-а и не совсем понимаю, почему у Вас его нет нигде. Возможно, Вы его куда-то не туда пытаетесь запихнуть.
Код выше просто берет указанные файлы и объединяет их в один. Все, больше ничего не происходит. Расписывать там нечего. Запустите код через F8 и увидите, что он делает.
Код: vbnet
1.
2.
3.
docNow.Range.Copy 'копируем все данные открытого документа
docAct.Range(docAct.Range.End - 1).Paste 'вставляем скопированное в книгу для объединения данных - в конец
docAct.Range(docAct.Range.End - 1).InsertBreak Type:=0 'вставляем разрыв страницы
...
Рейтинг: 0 / 0
20.10.2014, 11:56
    #38781622
ДеРибас
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение файлов Word в один средствами VBA
The_Prist,

Да я вообще туплю. Управлять с формы Access наполнением закладок у меня получается. А использовать коды макросов Word или вот этот ваш код никак у меня не выходит. Тема совершенно незнакомая мне. Так что я опять застрял. Может ли кто-то на пальцах что называется, показать код: вот, цепляй на кнопку формы - нажал и сработает? Мне чтоб по нажатию кнопки два документа сливались в один, а как наполнить остальным содержанием - я справлюсь.
Базовой подготовки не хватает.
...
Рейтинг: 0 / 0
20.10.2014, 13:18
    #38781747
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение файлов Word в один средствами VBA
ДеРибас, прочитал тему по диагонали, но если Вы пишите "или напрямую из запросов данные экспортируются в шаблоны документов Word на закладки" то может воспользоваться слиянием самого ворда, в результате которго и получите один большой документ для всех записей?
...
Рейтинг: 0 / 0
20.10.2014, 14:02
    #38781815
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение файлов Word в один средствами VBA
ДеРибасМне чтоб по нажатию кнопки два документа сливались в одинТак а мой код не сливает в один? Вы нифига сами не пишите что откуда выполняете и какие получаете ошибки, а мы как должны Вам чего сделать? Написать Вам полностью код, не видя ни Ваших файлов, ни Ваших наработок?
Я уже написал - мой код делает все, что Вам надо - он объединяет файлы Word в один. Откуда Вы его запускаете - неизвестно. Какие подсовывете файлы - неизвестно. Получаете ли ошибки и какие - низвестно. Выдергиваете ли только его часть и куда-то впихиваете - неизвестно. Вставили в любой файл Word, нажали F5 и все, код выполнился и сделал что необходимо.
ДеРибасВ этом же и вопрос, для ясности выведенный в заголовок: как соединять документы Word
По ходу не только в этом вопрос, т.к. пример есть (нужная часть из трех строк состоит), но адаптировать под себя не можете.
...
Рейтинг: 0 / 0
22.10.2014, 19:14
    #38784571
ДеРибас
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение файлов Word в один средствами VBA
The_Prist,
Хорошо. Вот форма в базе с одной кнопкой. Два файла в одной папке с базой.
Какой код нужно прописать кнопке, чтобы при ее нажатии второй файл влился в первый?
...
Рейтинг: 0 / 0
22.10.2014, 22:10
    #38784682
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение файлов Word в один средствами VBA
ДеРибас,

и Вы чего хотите, выложив пустые файлы? Чтобы Вам код теперь написали уже под Access? Где наработки? Где что пытались? Вы как создали тему без единой своей попытки решить, так и продолжаете. Честно, лениво делать Вам что-то, если Вы сами не хотите прикладывать усилий для решения своей задачи.
Посмотрите как подключаться к другому приложению из офиса: Как из Excel обратиться к другому приложению
Из Access это делается точно так же, как и из Excel, поэтому код в статье полностью подойдет. Останется лишь скомбинировать то, что там написано с кодом выше.
...
Рейтинг: 0 / 0
22.10.2014, 23:27
    #38784741
ДеРибас
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение файлов Word в один средствами VBA
The_Prist
Я все остальное могу сделать сам! Никого не доставал ни на этом форуме, ни на других. Ковырялся вечерами и научился тому, чтобы сделать все самостоятельно. Я застрял на одной маленькой, узкой задаче. Все, в чем я нуждаюсь - это в этом. Потому что на нее почти нет ответов. Оградил вас от ненужных деталей, с которыми справляюсь. Зачем мне топить вас в довольно объемистом коде, если в нем все работает? Все создается, распределяется по закладкам, теперь созданное надо соединять в один документ, а это уже отдельная задача. Вам лень... Лень так лень. Мимо не прошли и даже пытались помочь. У меня почти все работает через то, что я переиначиваю чужие примеры под свою задачу - как раз то, что советуете мне вы. Это классно тоже, но в результате я мало понимаю, почему оно работает и что я собственно делаю.
За ссылку спасибо. Буду разбираться.
...
Рейтинг: 0 / 0
22.10.2014, 23:34
    #38784744
ДеРибас
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение файлов Word в один средствами VBA
Дело в том, что в ставка по закладкам - это лишь часть того, что делает этот модуль. Он еще и формирует текст в зависимости от задачи, выбирает реквизиты и прочее. Хотя я постарался делать все объектно-ориентированном русле, все равно модуль объемный. В качестве примера нужно или приводить его целиком, а он цепляет еще и паблик-функции с другого модуля... Короче, смысл все это ушатом выливать, если мне нужно только маленький вопрос решить: два файла ворда должны слиться.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
11.05.2020, 16:29
    #39955927
respector
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение файлов Word в один средствами VBA
The_Prist, добрый день! Наткнулся на ваш код, когда искал решение похожей задачи. Можете подсказать, как модифицировать этот код для того, чтобы из файлов WORD копировать только таблицы (без шапки), а не все содержание документов?
Спасибо.
...
Рейтинг: 0 / 0
12.05.2020, 12:04
    #39956198
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение файлов Word в один средствами VBA
respector,

нет. Потому что для этого как минимум нужно видеть сами файлы: где таблицы, сколько их и т.п.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Объединение файлов Word в один средствами VBA / 22 сообщений из 22, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]