Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 使用“isempty”删除表行_Vba_Ms Word - Fatal编程技术网

Vba 使用“isempty”删除表行

Vba 使用“isempty”删除表行,vba,ms-word,Vba,Ms Word,有人能告诉我为什么,当我运行此代码时,当我的表中有空行时,它会跳过tbl.Range.Rowsi.Delete行吗 非常感谢 黛比 我想我会坚持多久 如表所示的尺寸tbl 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).Delet

有人能告诉我为什么,当我运行此代码时,当我的表中有空行时,它会跳过tbl.Range.Rowsi.Delete行吗

非常感谢

黛比

我想我会坚持多久 如表所示的尺寸tbl

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中,行永远不会为空—它始终包含单元格结尾和行结尾字符。尝试:

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

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

谢谢,这非常有效。我很感激你用IsEmpty解释为什么它不起作用。