Создать таблицу в 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5