Удалить строку таблицы с помощью isempty - PullRequest
0 голосов
/ 29 мая 2020

Может кто-нибудь сказать мне, почему, когда я запускаю этот код, он пропускает строку tbl.Range.Rows (i) .Delete , когда в моей таблице есть пустые строки?

Большое спасибо

Debb ie

Dim i As Long 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

1 Ответ

1 голос
/ 29 мая 2020

Простой ответ заключается в том, что в 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

Обратите внимание, что приведенный выше код не будет работать, если в таблице есть вертикально объединенные / разделенные ячейки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...