Комментарии к коду объясняют процесс.
Option Explicit
Sub sortAreas()
Dim a As Long
'define the worksheet
With Worksheets("sheet1")
'used range in column D
With .Range(.Cells(4, "D"), .Cells(Rows.Count, "D").End(xlUp))
'all dates in column D
With .SpecialCells(xlCellTypeConstants, xlNumbers)
'loop through Areas of discontiguous range
For a = 1 To .Areas.Count
'identify Area and expand to 4 columns wide
With .Areas(a).Resize(, 4)
'sort on the third column in ascending order
.Sort key1:=.Cells(1, 3), order1:=xlAscending, Header:=xlNo
End With
Next a
End With
End With
End With
End Sub