首页 > 解决方案 > 使用“isempty”删除表格行

问题描述

有人可以告诉我为什么,当我运行此代码时,当我的表中有空行时,它会跳过tbl.Range.Rows(i).Delete行?

非常感谢

黛比

Dim i 只要 Dim 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

标签: vbams-word

解决方案


简单的答案是,在 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

请注意,如果表格具有垂直合并/拆分单元格,则上述代码将不起作用。


推荐阅读