Макросы. Перенос данных из Excel в Word

Перенос данных из Excel в Шаблон Word.

Предложу два варианта переноса данных из 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 появляться не будет.