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

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

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

Author24 — интернет-сервис помощи студентам
Нужно после заполнения данных в Excel'е создать Word-формуляр.
Имеется один основной docx-файл и несколько предварительно созданных шаблонов разделов (обычных docx файлов, каждый со своим текстом, картинками, колонтитулами, форматированием...). В зависимости от заполненных в Excel данных, надо вставлять в основной файл (вместо созданных там для этого закладок) целиком один из подготовленных docx-файлов. Подскажите, пожалуйста, как это сделать макросом из Excel?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.11.2015, 21:56
Ответы с готовыми решениями:

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

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

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

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

2
15153 / 6426 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
09.11.2015, 23:03 2
vadi61, запишите макрорекордером в Ворде вставку файла на место закладки. Перенесите в VBA Excel, подставив переменные вместо имени закладки, файла. Перед переносом замените константы Ворда типа wdGoToBookmark на их значения, для этого поставьте курсор в это слово и нажмите Shift+F2 (в данном случае -1).
0
 Аватар для vadi61
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.11.2015, 22:44
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Как проверить, что файл НЕ существует с помощью Bash
bytestream 25.01.2025
В системном администрировании проверка существования файлов является фундаментальной операцией, особенно при написании скриптов на Bash. Правильная обработка ситуаций, когда файл отсутствует,. . .
Как проверить, что строка пустая, неопределена или null в JavaScript
bytestream 25.01.2025
При разработке веб-приложений на JavaScript разработчики регулярно сталкиваются с необходимостью проверки строковых значений на различные состояния. Валидация данных является критически важным. . .
Как проверить существование ключа в объекте или массиве в JavaScript
bytestream 25.01.2025
При разработке веб-приложений на JavaScript программисты постоянно сталкиваются с необходимостью работать с объектами и массивами. Эти структуры данных являются фундаментальными элементами языка и. . .
Как создать ArrayList из массива (array) в Java
bytestream 25.01.2025
При разработке программного обеспечения на языке Java программисты часто сталкиваются с необходимостью эффективного управления наборами данных. Массивы и ArrayList являются двумя фундаментальными. . .
Как сгенерировать случайные целые числа (int) в указанном диапазоне в Java
bytestream 25.01.2025
В программировании генерация случайных чисел является важнейшим инструментом для решения множества практических задач. От создания игровых механик до реализации алгоритмов машинного обучения, от. . .
Как сделать, чтобы grep выводил строки до и после найденной
hw_wired 25.01.2025
Утилита grep стала незаменимым инструментом для поиска и фильтрации информации в Unix-подобных операционных системах. Эта командная утилита позволяет осуществлять поиск строк, соответствующих. . .
Как клонировать определенную ветку в Git
bytestream 24.01.2025
Одной из ключевых функций Git является возможность клонирования веток, что позволяет создавать локальные копии удаленных репозиториев и работать с определенными версиями проекта. Этот механизм. . .
Как в цикле обойти строки DataFrame в Pandas Python
bytestream 24.01.2025
DataFrame представляет собой одну из основных структур данных в библиотеке Python Pandas, которая организует информацию в виде двумерной таблицы с строками и столбцами. Эта структура данных особенно. . .
Как получить имя текущей ветки в Git
bytestream 24.01.2025
При работе с Git часто возникает необходимость определить имя текущей ветки, в которой ведется разработка. Знание текущей ветки является критически важным аспектом для эффективного управления. . .
Как отсортировать массив объектов по значению поля объекта в JavaScript
bytestream 24.01.2025
При разработке веб-приложений на JavaScript разработчики часто сталкиваются с необходимостью работать с массивами объектов. Эти структуры данных представляют собой упорядоченные наборы элементов, где. . .
Ошибка "src refspec master does not match any" при пуше коммита в Git
bytestream 24.01.2025
При работе с системой контроля версий Git разработчики нередко сталкиваются с различными ошибками, одной из которых является сообщение "src refspec master does not match any". Эта ошибка возникает. . .
Как округлить не более двух цифр после запятой в JavaScript
bytestream 24.01.2025
При работе с числами в JavaScript разработчики часто сталкиваются с необходимостью округления десятичных значений до определенного количества знаков после запятой. Это особенно важно при работе с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru