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