Vba 对于每个(不可靠的部分除外)

Vba 对于每个(不可靠的部分除外),vba,ms-word,Vba,Ms Word,我正在尝试为Word构建一个宏,它将遍历每个表格,并从文本中删除任何行距,然后调整表格大小以匹配 我有以下代码: For Each tbl In ActiveDocument.Tables For Each r In tbl.Rows r.SetHeight RowHeight:=0.1, HeightRule:=wdRowHeightAtLeast Next Next 然而,这又回来了 运行时错误“5991”:“无法访问此数据库中的单个行。” 集合,因为该表具

我正在尝试为Word构建一个宏,它将遍历每个表格,并从文本中删除任何行距,然后调整表格大小以匹配

我有以下代码:

For Each tbl In ActiveDocument.Tables
    For Each r In tbl.Rows
        r.SetHeight RowHeight:=0.1, HeightRule:=wdRowHeightAtLeast
    Next
Next
然而,这又回来了

运行时错误“5991”:“无法访问此数据库中的单个行。” 集合,因为该表具有垂直合并的单元格。“

对于tbl.行中的每个r,
行上


合并的单元格位于表的两行标题中,因此我很乐意在这个过程中忽略它们。那么,我如何为每个跳过
tbl.Rows
前两个值的
执行

您可以立即为整个表设置行吗

For Each tbl In ActiveDocument.Tables
    tbl.Rows.SetHeight RowHeight:=0.1, HeightRule:=wdRowHeightAtLeast
Next

您可以尝试捕获错误并忽略错误上的行。请参阅此示例。我已尝试在代码中的各个点将
放在错误恢复下一步中
,但它要么完全跳过表,要么错误仍然出现。问题似乎不是为合并单元格设置行高,而是为
r
留出值列表。如果要忽略前几行,则可以执行类似于
的操作,如i=3到tbl.rows.Count
然后处理
tbl.rows(i)
您无法执行的任何原因:
tbl.Rows.SetHeight RowHeight:=0.1,HeightRule:=wdrowheights至少