Исходный код
'======================================================================
'Текст обработчика может быть размещен в скрипте профиля или
'общесистемном скрипте.
'Отсортировать таблицу, которая должна быть показана на экране
Sub List_BeforeShow(Sheet)
'Если таблица пустая, ничего не делать
Rows = Sheet.RowsCount-1 'индексация начинается с 0
If Rows = -1 Then Exit Sub
'Если в таблице есть столбец с форматом данных Date, то
'отсортировать по нему и передвинуть его в начало таблицы.
'На этом дальнейшую обработку прервать
Cols = Sheet.ColumnsCount-1
For i = 0 To Rows
For j=0 To Cols
value = Sheet.CellValue(i,j)
If IsEmpty(value) Then
'Если ячейка пустая, перейти на след. строку
i = i + 1
Exit For
ElseIf IsDate(value) Then
Sheet.Sort j, TRUE 'сортировать по убыванию
Sheet.MoveColumn j, 0
Exit Sub
End If
Next
Next
'Иначе - отсортировать таблицу по нулевому столбцу
Sheet.Sort 0, False
End Sub
'======================================================================