Похоже, вы пытаетесь удалить строку и столбец, когда в ячейке есть «Удалено».Очевидно, что если вы используете один цикл для удаления строки, в которой есть «Удаленный», то второй цикл для удаления столбца, в котором есть «Удаленный», второй цикл ничего не найдет.Попробуйте что-то на основе:
Dim t As Long, r As Long, c As Long, ArrCols() As String
With myDoc
For t = 21 To 7 Step -1
With .Tables(t)
If InStr(1, .Range.Text, "Deleted", 1) Then
ReDim ArrCols(.Columns.Count)
For r = .Rows.Count To 1 Step -1
With .Rows(r)
If InStr(1, .Range.Text, "Deleted", 1) Then
For c = 1 To .Cells.Count
If InStr(1, .Cells(c).Range.Text, "Deleted", 1) Then
ArrCols(c) = c
End If
Next
.Delete
End If
End With
Next r
For c = UBound(ArrCols) To 1 Step -1
If ArrCols(c) <> "" Then .Columns(c).Delete
Next
End If
End With
Next
End With
Обратите внимание, как все циклы, включающие удаления, работают в обратном направлении.
Тот факт, что ваш собственный код не выдавал ошибок при удалении строкбыло просто совпадением.