#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
Любая помощь в этом была бы очень признательна!!