使用 "isempty "删除表行

问题描述 投票:0回答:1

谁能告诉我,为什么当我运行这段代码时,它跳过了 tbl.Range.Rows(i).Delete(删除)。 当我的表中有行是空的时候,这一行是什么?

谢谢

黛比

Dim i As LongDim tbl As Table

Set tbl = ActiveDocument.Tables(2)

For i = tbl.Range.Rows.Count To 1 Step -1
  With tbl
    If IsEmpty(tbl.Range.Rows(i)) = True Then
      tbl.Range.Rows(i).Delete
    End If
  End With
Next
word-vba
1个回答
1
投票

简单的答案是,在Word中,一行永远不会是空的--它总是包含单元格和行结束的字符。试试吧。

Dim r As Long
With ActiveDocument.Tables(2)
  For r = .Rows.Count To 1 Step -1
    With .Rows(r)
      If Len(.Range.Text) = .Cells.Count * 2 + 2 Then .Delete
    End With
  Next r
End With

请注意,如果表格中的单元格是垂直合并的,上面的代码就不起作用了。

© www.soinside.com 2019 - 2024. All rights reserved.