work backwards
Sub RowBeGone1()
'When you delete rows, it's a good idea to do it backwards! Deleting rows
'going forwards causes problems because suppose you delete row 2. Now what
'WAS row 3 is now row 2. Your code doesn't account for this. Try:
Application.ScreenUpdating = False
'For i = 5000 To 4 Step -1
For i = Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1
If Cells(i, 1).Value = "" Then Rows(i).Delete
Next
Application.ScreenUpdating = True
End Sub