Похоже, вы неправильно поняли использование свойства key1. Обратитесь к этой ссылке для более подробной информации. Ключ key1 должен содержать все значения для сортировки (например, в объекте диапазона), а не имя столбца.
следующее может быть полезно для вас, но вам нужно соответствующим образом настроить ссылки на ячейки и добавить перехват ошибок там, где это имеет смысл.
Какой код в том, что он ищет дату в ячейке B15 и пытается найти ячейку, в которой она содержится в строке 17. Затем он берет эту ячейку и расширяет ее до конца, чтобы определитьклетки для сортировки. Он использует autofilter.sort вместо range.sort, потому что из того, что я вижу в вашем опубликованном изображении, вы уже применили автофильтр.
Option Explicit
Public Sub sSort()
Dim headerColumn As Range, headers As Range, foundRange As Range, sortItems As Range
Dim headerColumnNumber As Long
Dim lookupValue As Variant
lookupValue = Sheet1.Range("B15").Value
Set headers = Sheet1.Range("17:17")
Set foundRange = headers.Find(lookupValue, LookIn:=xlValues)
Set sortItems = Range(foundRange.Offset(1, 0), foundRange.End(xlDown))
Sheet1.AutoFilter.Sort.SortFields.Clear
Sheet1.AutoFilter.Sort.SortFields.Add Key:=sortItems, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With Sheet1.AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub