Один из способов достижения этого заключается в следующем: причина, по которой я удаляю строки ниже (586) перед проверкой строк выше (505), заключается в том, что, как только вы удаляете строку, строки сдвигаются вверх, в сущности меняя номера строк.:
Sub foo()
Dim ws As Worksheet: Set ws = Sheets("Sheet1")
If ws.Range("B586").Value = "" Then ws.Rows("584:585").Delete
If ws.Range("B505").Value = "" Then ws.Rows("503:504").Delete
End Sub