我正在扫描一个包含表格内外列表元素的 word 文档。找到列表元素后,我会将其层次结构编号和与之关联的文本导出到 Excel。我的扫描是基于列表元素而不是具体的表格。
在某些情况下,列表元素将出现在表格的第一列中,与之关联的文本将出现在该表格的任意数量的后续列中。在某些表格中有合并的单元格,因此我需要确定表格当前行中的列数。
我不断收到运行时错误'438':对象不支持此属性或方法就行了tCol = oLI.Range.Tables(1).Rows(oCurrentRow).Columns.Count
,我不知道为什么。
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Set xlWB = xlApp.Workbooks.Add ' create a new workbook
With xlWB.Worksheets(1)
For Each oList In ActiveDocument.Lists
For Each oLI In oList.ListParagraphs
.Cells(i, 1) = oLI.Range.ListFormat.ListString
If oLI.Range.Information(wdWithInTable) = True Then
'#DETERMINE WHICH TABLE TO LOOK IN
oCurrentRow = oLI.Range.Cells(1).RowIndex
'Determine which Row in the Table to look in
tCol = oLI.Range.Tables(1).Rows(oCurrentRow).Columns.Count
'Determine how many Columns the Table contains
Debug.Print tCol
For j = 2 To tCol
.Cells(i, j) = oLI.Range.Tables(1).Cell(oCurrentRow, j)
Next j
Else
.Cells(i, 2) = oLI.Range.Text
End If
i = i + 1
Next oLI
Next oList
End With