@ProooNoob

Как заполнить таблицу в одном документе Word данными из таблицы Excel с помощью макроса VBA?

Всех приветствую! Возникла задача автоматизации формирования таблицы в документе Word из данных, вводимых в таблицу Excel.
1. Имеется таблица Excel
Примерный формат приведён ниже, с неопределенным количеством вводимых данных, но со строго указанной формой. Необходимо при нажатии клавиши формировать таблицу в Word документе.
61dc706715143408717303.jpeg
2. Имеется сам типовой Word документ
Таблица в документе должна быть заполнена данными из таблицы Excel и в зависимости от количества пунктов (№ п/п) расширяться полями (в качестве примера приведены пустые поля).
61dc708dd3a68708761066.jpeg
3. Имеется пример кода
Который нашел на просторах интернета: Думал переделать под свои задачи, но пока не знаю с чего именно начать.
Sub main()
Dim wdApp As Object
Dim wdDoc As Object

HomeDir$ = ThisWorkbook.Path
Set wdApp = CreateObject("Word.Application")
i% = 2
Do
If Cells(i%, 1).Value = "" Then Exit Do
If Cells(i%, 1).Value <> "" Then

NPP$ = Cells(i%, 1).Text
ID$ = Cells(i%, 2).Text
Adress$ = Cells(i%, 3).Text
SN$ = Cells(i%, 4).Text

DataC$ = Date

FileCopy HomeDir$ + "\template.doc", HomeDir$ + "\" + NPP$ + "_" + ID$ + "_" + DataC$ + ".doc"
Set wdDoc = wdApp.Documents.Open(HomeDir$ + "\" + NPP$ + "_" + ID$ + "_" + DataC$ + ".doc")

wdDoc.Range.Find.Execute FindText:="&date", ReplaceWith:=DataC$

wdDoc.Range.Find.Execute FindText:="&id", ReplaceWith:=ID$
wdDoc.Range.Find.Execute FindText:="&adress", ReplaceWith:=Adress$
wdDoc.Range.Find.Execute FindText:="&sn", ReplaceWith:=SN$

wdDoc.Save
wdDoc.Close
End If

i% = i% + 1
Loop
wdApp.Quit
MsgBox "Готово!"

End Sub


Подскажите, как это реализовать с применением макросов VBA? Буду рад любой помощи, примерам кода, алгоритму как это делать. Прочесал форумы, но не нашел необходимой информации, хоть и задача является типичной.
  • Вопрос задан
  • 319 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы