Excel VBA находит все остальные ячейки, используя метод проверки пустых ячеек. При следующем запуске того же макроса он находит ячейку, пропущенную при последнем запуске, и снова пропускает следующий экземпляр пустой ячейки. Если я перебираю макрос несколько раз, в конце концов, каждая строка без данных удаляется в соответствии с назначением макроса. Строки сдвигаются вверх после удаления строки по одному, я попробую объединение и удалю Range, как указано в @ BigBen
Когда найдена пустая ячейка, она проверяет столбцы A, B и D, чтобы увидеть, применяется ли формула, и если формула существует в этой строке, вся строка удаляется.
Dim cel, dataCells As Range
Dim rngBlank, dc As Range
Dim lastRow, cForm, c, blnkRange As String
Dim cycleTimes As Integer
On Error Resume Next
Set dataCells = Range("F2:W2").Cells 'This is header of the table of data
cycleTimes = dataCells.Count 'Number of times to cycle through macro
For Count = 1 To cycleTimes 'I don't want to cycle through macro
lastRow = Range("N" & Rows.Count).End(xlUp).Row 'To find end of column
For Each dc In dataCells
c = Split(Cells(1, dc.Column).Address, "$")(1) 'Column Letter
blnkRange = c & "3:" & c & lastRow 'Range to look over for empty cells
Set rngBlank = Range(blnkRange).SpecialCells(xlCellTypeBlanks).Cells
For Each cel In rngBlank '**Skipping Every other Row**
If Not TypeName(cel) = "Empty" Then
cForm = "A" & cel.Row & ",B" & cel.Row & ",D" & cel.Row 'Formula check
If Range(cForm).HasFormula Then
cel.EntireRow.Delete
End If
End If
Next
Next
Next