Sub Macro1()
Dim a, i&, f As Worksheet: Set f = ActiveSheet
a = Array("A4:A7", "B4:B7", "C4:C7", "D4:D7")
For i = LBound(a) To UBound(a)
f.Sort.SortFields.Clear
f.Sort.SortFields.Add _
Key:=Range(a(i)), _
SortOn:=xlSortOnCellColor, _
Order:=xlAscending
With f.Sort
.SetRange Range(a(i)): .Header = xlGuess
.Orientation = xlTopToBottom: .SortMethod = xlPinYin
.Apply
End With
Next
End Sub