Sub SortData()
Dim x1 As Integer
Call Colors.InitColor
'Applying sort.
With ActiveWorkbook.Worksheets(DataName).Sort
.SortFields.Clear
.SortFields.Add(Range("P1:P" & Range("P" & Rows.Count).End(xlUp).row), _
SortOn:=xlSortOnCellColor, Order:=xlAscending, DataOption:=xlSortNormal).SortOnValue.Color =red
.SortFields.Add(Range("P1:P" & Range("P" & Rows.Count).End(xlUp).row), _
SortOn:=xlSortOnCellColor, Order:=xlAscending, DataOption:=xlSortNormal).SortOnValue.Color = green
.SetRange Range("A1:P100")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With