Создать таблицу в Word и заполнить её данными из массива - VBA
Формулировка задачи:
Добрый день, товарищи!
Возникла задача - не могу решить.. Прошу помощи..
Есть массив arr(6;i) - 7 столбцов, и минимум 1 строка, максимум 1000.
Эти данные я обрабатываю в Excel. Теперь мне нужно данные из этого массива вывести в таблицу в Word.
Как лучше это сделать? Как записывать данные в конкретную таблицу? Сейчас я вывожу данные из другого массива в Word через текстовые поля и закладки
Решение задачи: «Создать таблицу в Word и заполнить её данными из массива»
textual
Листинг программы
Public Sub zBookmarks() Dim arr As Variant, x1, x1k, nstr Dim C1, C2, C3, C4, C5, C6, C7 As String Dim path Dim wd As Object 'Word.Application Dim doc As Object 'Word.Document Dim tbl As Object 'Word.Table '------------------------------------------------' arr = Worksheets("Лист1").Range("A1:G7").Value ' Для примера '------------------------------------------------' x1 = LBound(arr, 1) x1k = UBound(arr, 1) - 1 path = ThisWorkbook.path Set wd = CreateObject("Word.Application") wd.Visible = True 'Поменять потом на False wd.Documents.Open Filename:=path & "" & "WORD.dotm" ''wd.Documents.Open Filename:=path & "" & "EXRD111.dotm" Set doc = wd.ActiveDocument Set tbl = doc.tables(1) x1 = 0 Do While x1 < x1k x1 = x1 + 1 Debug.Print x1; If x1 > 1 Then tbl.Cell(x1 + 2, 1).Select wd.Selection.InsertRowsBelow 1 End If With tbl '' .Cells(x1 + 2, 1).Range.Text = arr(x1, 1) tbl.Cell(x1 + 2, 1).Range = arr(x1, 1) tbl.Cell(x1 + 2, 2).Range = arr(x1, 2) tbl.Cell(x1 + 2, 3).Range = arr(x1, 3) tbl.Cell(x1 + 2, 4).Range = arr(x1, 4) tbl.Cell(x1 + 2, 5).Range = arr(x1, 5) tbl.Cell(x1 + 2, 6).Range = arr(x1, 6) tbl.Cell(x1 + 2, 7).Range = arr(x1, 7) End With Loop wd.ActiveDocument.SaveAs2 Filename:=path & "" & "EXRD1.doc" wd.ActiveDocument.Close wd.Quit Set wd = Nothing End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д