Apologies... I should've mentioned the zeros right from the start.
To avoid them you'll have to do two things.
1. Copy cells one cell at a time.
2. Add the following snippet to the Worksheet_Change event.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ErrorHandler
If Application.EnableEvents = True Then
Application.EnableEvents = False
If Target.Value = 0 Then
Target.Value = ""
End If
End If
ErrorHandler:
Application.EnableEvents = True
End Sub
The above event code will not work for ranges larger than one cell. Target is always one cell.
P.S. Real zeros being copied over will also be turned to blanks. No way to fix that.