Sub test()
Dim c As Range
lrow = Columns("A").Cells(Rows.Count).End(xlUp).Row
For Each c In Range("A3:A" & lrow)
If IsNumeric(c) Then
c.Offset(1, 1).Value = c.Value
End If
Next c
For Each c In Range("B4:B" & lrow)
If IsEmpty(c) Then
c.Value = c.Offset(-1, 0).Value
End If
Next c
For Each c In Range("A3:A" & lrow)
If IsNumeric(c) Then
c.EntireRow.Delete shift:=xlUp
End If
Next c
End Sub