实例需求:Word文档中表格有的单元格中包含嵌套表格(注意其中表格中有合并单元格),如下图所示。
现在需要删除单元格顶部的嵌套表格(如上图中的表格1和表格3),如下图所示,如果表格较多,手工操作需要大量时间,而且容易出错。
示例代码如下。
Sub RemoveNestedTableOnTopCell()
Dim t As Table, tt As Table
Dim c As cell
For Each t In ActiveDocument.Tables
For Each c In t.Range.Cells
If c.Tables.Count > 0 Then
For Each tt In c.Tables
If tt.Range.Start = c.Range.Start Then
tt.Delete
End If
Next tt
End If
Next c
Next t
End Sub
【代码解析】
第4~14行代码循环遍历当前文档中的全部表格。
第5~13行代码循环遍历表格中的全部单元格,由于表格中包含合并单元格,因此无法之间使用行号和列号的遍历方式。
第6行代码判断单元格中是否包含嵌套表格。
第7~11行代码循环遍历嵌套表格。
第8行代码判断嵌套表格的起始位置和单元格的起始位置是否相同。
如果起始位置相同,说明该嵌套表格位于单元格顶部,第9行代码将删除该表格。
代码逻辑并不复杂,重要的是如何定位需要删除的表格。