我有一个word文档,其中包含一些表,其中每个表都有另一个嵌套表。
我正在尝试从VB.Net代码填充这些表...实际上发生的是VB.Net无法访问嵌套表。
我什至试图遍历单元格并找出单元格是否确实包含表..但仍然无法正常工作...
感谢任何人都可以提出想法
答案 0 :(得分:0)
找出一个单元格是否包含一个或多个嵌套表的诀窍是查询Cell.Tables.Count
。如果返回的值大于零,则存在嵌套表。
由于您没有提供任何代码作为起点,因此以下示例是通用示例,可以适应任何情况。它循环表中的所有单元格,包括嵌套表中的所有单元格。它可以在VB.NET或VBA中使用:与VBA不同的两行被注释掉,就在VB.NET行的上方。对于VB.NET,假定存在一个名为wdApp
的类级字段,该字段代表Word.Application
,并且导入了命名空间System.Diagnotics
。
(注意:同样的方法在C#中也适用,只是语法略有不同。)
Sub LoopAllCellsIncludingNestedTables()
Dim counter As Long
Dim tbl As word.Table
counter = 0
'Set tbl = ActiveDocument.Tables(1)
tbl = wdApp.ActiveDocument.Tables(1)
counter = LoopCells(counter, tbl)
Debug.Print counter
End Sub
Function LoopCells(counter As Long, tbl As word.Table) As Long
Dim cel As word.Cell
Dim nestedTbl As word.Table
For Each cel In tbl.Range.Cells
counter = counter + 1
If cel.Tables.Count > 0 Then
For Each nestedTbl In cel.Tables
counter = LoopCells(counter, nestedTbl)
Next
End If
Next
'LoopCells = counter
Return counter
End Function