Предложу два варианта переноса данных из Excel в Word.
Вариант первый:
Cоздаются связи между книгой Excel и Шаблоном Word. После заполнения связанных ячеек в Excel и вызова/обновления Шаблона Word мы получаем заполненную данными из Excel копию Шаблона Word.
1.Открываем Шаблон Word и файл с данными Excel. Затем выделяем в Excel нужную ячейку и выбираем в Word место для вставки, затем на вкладке «Главная» -> «Вставить» -> «Специальная вставка..»
В появившейся форме слева выбираем «Связать:» и в поле «Как:» -> Неформатированный текст. Жмем ОК. Связь установлена. Сохраним и закроем Шаблон Word.
2.Создадим макрос, который теперь будет вызывать/обновлять связанный шаблон. Где FileSt - это имя и место расположения файла Шаблона Word, а FileNew - это имя и место расположения нового файла Word.
Sub obj() Dim objWord As Object Dim FileStart Dim FileNew Set objWord = CreateObject("Word.Application") FileSt = "C:\Шаблон.docx" FileNew = "C:\Новый_Файл.docx" objWord.Documents.Open FileSt For Each MyLink In objWord.ActiveDocument.Fields MyLink.Update MyLink.Unlink Next MyLink objWord.ActiveDocument.SaveAs _ filename:=FileNew, _ FileFormat:=wdFormatDocument, _ Password:="", _ AddToRecentFiles:=True, _ WritePassword:="", _ ReadOnlyRecommended:=False objWord.Quit End Sub
Вариант второй:
Cоздаём закладки в Шаблоне Word.
1.Открываем Шаблон Word. Установим курсор в нужном месте, на вкладке «Вставка» -> выбираем «Закладка» и в появившейся форме вводим имя закладки (например: first) -> нажимаем «Добавить». Сохраним и закроем Шаблон Word.
2.Создадим макрос, который теперь будет вызывать Шаблон с закладками и вносить данные из ячейки Cells(1,1).Value в созданную закладку first Шаблона Word.
Sub obj() Dim objWord As Object Dim FileStart Dim FileNew Set objWord = CreateObject("Word.Application") FileSt = "C:\Шаблон.docx" FileNew = "C:\Новый_Файл.docx" Set objDoc = objWord.Documents.Open(FileSt) objWord.Visible = True objDoc.Bookmarks("first").Range.InsertAfter (Cells(1, 1).Value) objWord.ActiveDocument.SaveAs _ Filename:=FileNew, _ FileFormat:=wdFormatDocument, _ Password:="", _ AddToRecentFiles:=True, _ WritePassword:="", _ ReadOnlyRecommended:=False objWord.Quit End Sub
P.S. Обращаю внимание, что если вместо objWord.Visible = True написать objWord.Visible = False, то Шаблон Word появляться не будет.