Итак, мне нужно было взять некоторые данные, сделанные в таблицах MS Word, и манипулировать в Excel.
Я решил получить его из Word в Excel через подпрограмму VBA, чтобы «сэкономить время».
Мой исходный документ Word содержал как таблицы двадцати чего-то.
Я взял таблицы исходного документа, извлек свои данные и создал новый документ с новой таблицей, для чего мне понадобилось только скопировать и вставить его в Excel.
Однако, хотя финальная таблица перед копированием выглядит хорошо на слове. Когда я копирую его в Excel, он разбивает ячейки, содержащие целые абзацы, на отдельные ячейки.
Как известно большинству людей, даже если решение выглядит как в Excel, выполняется слияние и центрирование, что сохраняет содержимое только в самой верхней ячейке выбора!
Таким образом, любой совет, будь то лучшее слияние и центр или лучшая "экономия времени" в целом, был бы великолепен.
Вот пример кода:
Sub First()
Dim tableLength, tableIndex
tableLength = ThisDocument.Tables.Count
Dim tblReport As Table
Dim docReport As Document
Set docReport = Documents.Add
Set tblReport = docReport.Tables.Add(Selection.Range, 1, 2)
With tblReport
Dim fieldOne, subvalueAription, subvalueA, subvalueB, subvalueC
For tableIndex = 1 To tableLength
fieldOne = ThisDocument.Tables(tableIndex).Rows(2).Cells(2).Range.Text
subvalueA = Trim(ThisDocument.Tables(tableIndex).Rows(4).Cells(2).Range.Text)
subvalueB = "A: " & Trim(ThisDocument.Tables(tableIndex).Rows(5).Cells(2).Range.Text)
subvalueC = "B: " & Trim(ThisDocument.Tables(tableIndex).Rows(6).Cells(2).Range.Text)
subvalueAription = subvalueA & subvalueB & subvalueC & "C: "
Dim rowNext As row
Set rowNext = .Rows.Add
rowNext.Cells(1).Range.Text = fieldOne
rowNext.Cells(2).Range.Text = subvalueA & subvalueB & subvalueC
Next
End With
End Sub