Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/40: Рейтинг темы: голосов - 40, средняя оценка - 4.60
1 / 1 / 0
Регистрация: 11.03.2013
Сообщений: 56
1

Скопировать один Word документ в другой

09.11.2015, 21:56. Показов 7519. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно после заполнения данных в Excel'е создать Word-формуляр.
Имеется один основной docx-файл и несколько предварительно созданных шаблонов разделов (обычных docx файлов, каждый со своим текстом, картинками, колонтитулами, форматированием...). В зависимости от заполненных в Excel данных, надо вставлять в основной файл (вместо созданных там для этого закладок) целиком один из подготовленных docx-файлов. Подскажите, пожалуйста, как это сделать макросом из Excel?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.11.2015, 21:56
Ответы с готовыми решениями:

Как программно скопировать модули и формы в другой документ?
Помогите разобраться, проблема в следущем: Есть набор ActiveDocument.Variables,модулей и форм в...

Word 2010: как куски текста, выделенные цветом, разом скопировать в другой документ?
В документе, созданном в Word 2010, есть куски текста, выделенные другим цветом. Есть ли...

Как создать документ Word и скопировать туда текст?
Есть такой метод: public void Export() { var app = new...

Из массива данных в .txt скопировать строчки в другой документ.
Нужно из массива данных в .txt скопировать строчки в другой документ. Возможно ли это?

2
15151 / 6424 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
09.11.2015, 23:03 2
vadi61, запишите макрорекордером в Ворде вставку файла на место закладки. Перенесите в VBA Excel, подставив переменные вместо имени закладки, файла. Перед переносом замените константы Ворда типа wdGoToBookmark на их значения, для этого поставьте курсор в это слово и нажмите Shift+F2 (в данном случае -1).
0
1 / 1 / 0
Регистрация: 11.03.2013
Сообщений: 56
10.11.2015, 22:44  [ТС] 3
Спасибо за ответ. Я предполагал, что процедура такая (основной Word-файл уже в работе):
1. Нахожу нужный файл (который надо вставить)
2. Открываю его
3. Копирую все его содержание в буфер обмена
4. Нахожу закладку и вставляю содержимое буфера
5. Закрываю оба файла

Или я усложняю? По Вашему сообщению я понял, что можно это же сделать без п. 2 и 3.

Описанная последовательность в макрорекордере получилась такой:
Visual Basic
1
2
3
4
5
6
Sub Makro1()
    Selection.WholeStory
    Selection.Copy
    ActiveWindow.Close
    Selection.PasteAndFormat (wdFormatOriginalFormatting)
End Sub
Честно говоря, это мне очень помогло.

Я предполагал что-то вроде:
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
Sub main()
    Dim wa As Object
    Dim wd1 As Object
    Dim wd2 As Object
 
    HomeDir$ = ThisWorkbook.Path
    Set wa = CreateObject("Word.Application")
 
    file1_name$ = Cells(38, 8).Value     'имя основного файла
    file2_name$ = Cells(38, 8).Value     'имя вставляемого файла
    bm_name$ = Cells(36, 8).Value        'имя закладки
   
    Set wd1 = wa.Documents.Open(HomeDir$ + fle1_name$)
    Set wd2 = wa.Documents.Open(HomeDir$ + fle2_name$)
 
    wd2.выделить все содержимое                                   'подскажите как
    wd2.скопировать все содержимое в буфер                        'подскажите  как
    wd1.Bookmarks.Item(bm_name$).Range.Text = вставить из буфера  'подскажите  как
 
    wd2.Close False
    wd1.Close True
    wa.Quit
    Set wa = Nothing
End Sub
Добавлено через 11 часов 16 минут
Решение подсказал ув. The_Prist с форума планета Excel:
Visual Basic
1
2
wd2.Range.Copy
wd1.Bookmarks.Item(bm_name$).Range.Paste
0
10.11.2015, 22:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.11.2015, 22:44
Помогаю со студенческими работами здесь

Скопировать один файл в другой
· с перестановкой местами четных и нечетных строк А как строки легко проверить на чётность и...

Скопировать один файл в другой
Создаю 2 файл, в первый записываю цифры. Почему в файле они выводятся в битой кодировке, даже не в...

Вывод данных из нескольких DataGridView в один документ Word
Здравствуйте, у меня есть несколько DataGridView. Нужно вывести данные из них в таблицу. Несколько...

Сбор информации из нескольких таблиц в один документ Word
Здравтсуйте. Появилась необходимость создать базу данных абонентов ЖКХ. Есть таблица Абоненты, где...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru