Создать таблицу в 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д