Sub test()
Dim lr As Long, r As Long, rng As Range
lr = Cells(Rows.Count, "A").End(xlUp).Row
Set rng = Rows(lr + 1)
For r = lr To 1 Step -1
If IsError(Cells(r, 1)) Then
Set rng = Union(rng, Rows(r))
ElseIf Cells(r, "B") = "" Or IsError(Cells(r, 1)) Or Not Cells(r, 1) Like "##-####" Then
Set rng = Union(rng, Rows(r))
End If
Next r
rng.Delete
End Sub