You may want to try this:
Sub TransferOldData()
Dim rData As Range
Dim rOldData As Range
For Each rData In Range("Data!A2:A65536")
If rData.Value <> "" Then
If rData.Value < Range("Data!H2").Value Then
Set rOldData = Range("OldData!A65536").End(xlUp).Offset(1, 0)
For i = 0 To 3
rOldData.Offset(0, i).Value = rData.Offset(0, i).Value
rData.Offset(0, i).Value = ""
Next i
End If
End If
Next rData
ActiveWorkbook.Worksheets("Data").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Data").Sort.SortFields.Add Key:=Range("A2"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("Data").Sort
.SetRange Range("A2:D65536")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Bookmarks