Sub Del_Y_and_Following_Blanks()
Dim a, b
Dim nc As Long, i As Long, k As Long
nc = Cells.Find(What:="*", After:=Cells(1, 1), LookIn:=xlValues, SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious, SearchFormat:=False).Column + 1
a = Range("A1", Range("B" & Rows.Count).End(xlUp).Offset(1)).Value
a(UBound(a), 1) = "@"
ReDim b(1 To UBound(a), 1 To 1)
For i = 1 To UBound(a)
If a(i, 1) = "Y" Then
b(i, 1) = 1
k = k + 1
Do Until a(i + 1, 1) <> ""
i = i + 1
k = k + 1
b(i, 1) = 1
Loop
End If
Next i
If k > 0 Then
Application.ScreenUpdating = False
With Range("A1").Resize(UBound(a), nc)
.Columns(nc).Value = b
.Sort Key1:=.Columns(nc), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
.Resize(k).EntireRow.Delete
End With
Application.ScreenUpdating = True
End If
End Sub