Тема: Концепция перевода диапазонов Ячеек Exel в Таблицу Word
Общая концепция в коде
Public appExl As Excel.Application
Public Sub CopyTableExcel()
Dim tbl As Table, RangeName As String, FD As FileDialog
Dim ListFiles() As String
Dim WbExl As Excel.Workbook, RangeEl As Excel.Range, Cell As Excel.Range
Set FD = Application.FileDialog(msoFileDialogFilePicker)
With FD
.ButtonName = "Создать"
.Title = "Список файлов"
With .Filters
.Clear
.Add "Файлы Exel", "*.xls, *.xlsx, *.xlsm"
End With
End With
FD.Show
ReDim Preserve ListFiles(1 To FD.SelectedItems.Count)
For i = 1 To FD.SelectedItems.Count
ListFiles(i) = FD.SelectedItems(i)
Next i
RangeName = InputBox("Введите диапазон ячеек Exel")
Set appExl = New Excel.Application
appExl.Visible = False
For k = 1 To UBound(ListFiles)
appExl.Workbooks.Open (ListFiles(k))
fi = ListFiles(k)
Set WbExl = appExl.Workbooks.Open(fi)
appExl.GoTo RangeName
Set RangeEl = appExl.Selection.Cells
Set tbl = ActiveDocument.Tables.Add(Selection.Range, RangeEl.Rows.Count, RangeEl.Columns.Count)
For j = 1 To tbl.Range.Cells.Count
Set Cell = appExl.Selection.Cells(j)
tbl.Range.Cells(j).Range.Text = Cell.Value
Next j
WbExl.Close 0
ActiveDocument.Range(tbl.Range.End, tbl.Range.End + 1).Select
Selection.TypeParagraph
Next k
appExl.Quit
End Sub
Концепция кода отражает общий принцип перевода диапазонов ячеек Exel в таблицы Word.
Макрос сначала запрашивает список файлов Exel и название диапазона ячеек. Диапазон ячеек во всех файлах может быть разный, но название должно быть одинаковым.
Далее создается и заполняется таблица Worda.
Некоторые возможности концепции:
1. Выделять напрямую ячейки Exel и сразу же создавать таблицу Worda
2. Связывать таблицу Worda с ячейками Exel и обновлять их автоматически
3. Связывать вместе таблицы Exel, Worda и интернета
4. Рисовать объекты в Word и связывать их с таблицами Exel для определенных математических расчетов.
И многое другое