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

Есть заготовка, меняйте под себя:
Код: 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
Объединение файлов Word в один средствами VBA
    #38781044
ДеРибас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Prist,

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

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

Код: 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
Объединение файлов Word в один средствами VBA
    #38781267
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЗатем второй акт - присоединили к первому акту
Это-то понятно.
Но что делать с закладками?
ИМХО
Может возникнуть конфликт имён.
Тогда перед вставкой, наверное, надо удалить закладки сначала?
...
Рейтинг: 0 / 0
Объединение файлов Word в один средствами VBA
    #38781270
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторГотовые файлы соединять!
Надо понимать, что закладки удалены?
...
Рейтинг: 0 / 0
Объединение файлов Word в один средствами VBA
    #38781322
ДеРибас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex77755,
А, понял вопрос. Хм... Если возникнет конфликт, можно и удалять. Спасибо, что обозначили возможную проблему. Буду держать в уме.
...
Рейтинг: 0 / 0
Объединение файлов Word в один средствами VBA
    #38781323
ДеРибас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex77755,

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

Мои комментарии в таком случае должны быть полностью по всей объектной модели 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
Объединение файлов Word в один средствами VBA
    #38781622
ДеРибас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Prist,

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

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

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


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