Try this...
Sub Reformat_Data()
Dim v As Variant, i As Long
Application.ScreenUpdating = False
With Sheets("Sheet2")
.Columns("A:A").Value = Sheets("Sheet1").Columns("A:A").Value
.Columns("A:A").NumberFormat = "0000"
.Columns("B:C").Value = Sheets("Sheet1").Columns("F:G").Value
.Columns("B:B").NumberFormat = "0000-00-00"
.Columns("A:C").HorizontalAlignment = xlCenter
.Columns("A:C").ColumnWidth = 13
'*****************************************************
' Use this if you want to "convert" (not just display)
' the numbers in column B into serial dates.
With .Range("B2", .Range("B" & Rows.Count).End(xlUp))
v = .Value2
On Error Resume Next
For i = 1 To UBound(v, 1)
v(i, 1) = CDate(Format(v(i, 1), "0000-00-00"))
Next i
On Error GoTo 0
.Value2 = v
.NumberFormat = "yyyy-mm-dd"
End With
'*****************************************************
End With
Application.ScreenUpdating = True
End Sub
Bookmarks