У меня есть файл, содержащий даты в первой строке, и столбец идентификаторов, определяющий таблицу, в которой я заполняю данные сотрудника для соответствующих данных (см. Рисунок)
Я хочу, чтобы даты сортировались в хронологическом порядке, но я хочу отсортировать только даты, прежде чем заполнять таблицу.
Я попробовал следующий код
Sub sortByDates()
Dim sumSheet as Worksheet
Dim toSort as Range
Set sumSheet = ThisWorkbook.ActiveSheet
LastCol = sumsheet.Cells.Find(What:="*", After:=[a1], _
SearchOrder:=xlByColumns,
SearchDirection:=xlPrevious).Column
Set toSort = sumsheet.Rows(1).Resize(1, LastCol - 1).Offset(0, 1)
toSort.Select
ActiveWorkbook.Worksheets("Employees").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Employees").Sort.SortFields.Add Key:=toSort, SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Employees").Sort
.SetRange toSort
.Header = xlGuess
.MatchCase = False
.Orientation = xlLeftToRight
.SortMethod = xlPinYin
.Apply
End With
End Sub
Однако даты перемещаются, но не упорядочиваются, как я хочу.Я думаю, что это может быть связано с тем, что сортировка Excel не знает, как обрабатывать формат даты, но не уверен.