Код VBA для создания страницы содержимого после заголовка и для каждой записи на странице содержимого для ссылки на каждую таблицу в созданном документе word

#vba #loops

Вопрос:

У меня есть код VBA, который в основном проходит через каждую строку листа Excel, копирует определенные ячейки из строки и вставляет их в другой лист «Шаблона». Этот лист шаблона затем копируется в документ Word. Он делает это для каждой из примерно 180 строк и, таким образом, создает 180 шаблонов, которые загружаются в один и тот же документ Word.

Я новичок в VBA, поэтому, пожалуйста, помогите! Мне удалось добавить заголовок для документа, но теперь я хочу добавить страницу содержимого после заголовка, где каждая строка на странице содержимого ссылается на каждую таблицу в документе (т. Е. 180 строк на странице содержимого), ссылающихся на 180 созданных таблиц. Вот мой код до сих пор:

 Sub CreateBasicWordRepot()  Dim wdApp As Word.Application 'creates the word application variable Dim SaveName As String Dim myDoc As Word.Document Dim tbl As Excel.Range Dim I As Integer Dim intY As Integer Dim WrdTbl As Word.Table Dim WrdDoc As Word.Document Dim t As Table Dim myrange As Object    Set wdApp = New Word.Application 'starts the MS Word app (but not yet visible)  With wdApp  .Visible = True 'Makes MS Word app visible  .Activate 'makes MS Word the active screen  .Documents.Add 'creates a new document    With .Selection  .ParagraphFormat.Alignment = wdAlignParagraphLeft  .BoldRun  .Font.Size = 14  .TypeText "lt;lt;Company Namegt;gt; IM Validation lt;lt;yeargt;gt; testing template"  .BoldRun  .TypeParagraph  .Font.Size = 11  .ParagraphFormat.Alignment = wdAlignParagraphLeft  .TypeParagraph  .InsertBreak Type:=7    End With    End With    For I = 4 To 186  Worksheets("Sept 2021 tests").Select  Range("B" amp; I).Copy  Sheets("sheet1").Select Range("B14").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _  :=False, Transpose:=False Sheets("Sept 2021 tests").Select  Range("C" amp; I).Copy  Sheets("sheet1").Select Range("B3").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _  :=False, Transpose:=False Sheets("Sept 2021 tests").Select  Range("D" amp; I).Copy  Sheets("sheet1").Select Range("B5").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _  :=False, Transpose:=False Sheets("Sept 2021 tests").Select  Range("E" amp; I).Copy  Sheets("sheet1").Select Range("B18").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _  :=False, Transpose:=False  Sheets("sheet1").Select Application.CutCopyMode = False 'Sheets("sheet1").Copy After:=Sheets(Sheets.Count)  Set tbl = ThisWorkbook.Worksheets("sheet1").Range("A1:B27") tbl.Copy  With wdApp.Selection   .PasteExcelTable _  LinkedToExcel:=False, _  WordFormatting:=False, _  RTF:=False  ' .Tables(I).AutoFitBehavior (wdAutoFitWindow)  End With    With wdApp.Selection  .InsertBreak Type:=7  End With    Next I   For Each t In wdApp.ActiveDocument.Tables  t.AutoFitBehavior wdAutoFitWindow Next t End Sub  

Любая помощь в этом была бы очень признательна!!