当我尝试 CubeChase 解决方案时,我想添加一个答案,但它不适用于我的表:
请注意,我在第 1、2 和 5 列中垂直合并了行。当我Selection.MoveDown
为了选择父“A3”行中的所有行而实现时,它无法识别第 3 列和第 4 列中的内部行。而是选择了父行“A4”、“A5”和“A6”行(格式与 A3 相同)而不选择任何内部行。
这是我最终要成功删除表中的父行和子行所要做的。我首先必须收集每行中第一个单元格的索引以删除到数组中。我颠倒了我的数组,以便自下而上地工作,以免在运行时更改索引。
然后我遍历我的反向数组,选择属于每个父行的单元格范围并删除与我的选择相关的行。
table = ActiveDocument.Tables(1)
For Each idx In ReverseArray
cells_to_delete = ActiveDocument.Range(Start=table.Range.Cells(idx).Range.Start, End=table.Range.Cells(idx+*count_of_cells*).Range.End)
cells_to_delete.Select
Selection.Range.Rows.Delete
Next idx
不知道其他人是否遇到过类似的问题,但我想我会把答案放在这里以防万一。:)