Автоматическая сортировка листа Microsoft Excel

Автоматическая сортировка листа Microsoft Excel

Можно ли настроить Excel (возможно, с помощью скриптов) на автоматическую сортировку таблицы каждый раз при обновлении записи?

решение1

Быстрый поиск в Google дал мне следующее:

http://www.techsupportforum.com/microsoft-support/microsoft-office-support/252123-can-someone-help-me-auto-sort-excel.html#post1499027

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not (Application.Intersect(Worksheets(1).Range("E9:F32"), Target) Is Nothing) Then
        DoSort
    End If
End Sub

Private Sub DoSort()
    Worksheets(3).Range("E3:M7").Sort Key1:=Worksheets(3).Range("M3"), Order1:=xlDescending, _
        Key2:=Worksheets(3).Range("L3"), Order2:=xlDescending, Header:=xlYes
    Worksheets(3).Range("E10:M14").Sort Key1:=Worksheets(3).Range("M10"), Order1:=xlDescending, _
        Key2:=Worksheets(3).Range("L10"), Order2:=xlDescending, Header:=xlYes
    Worksheets(3).Range("E17:M21").Sort Key1:=Worksheets(3).Range("M17"), Order1:=xlDescending, _
        Key2:=Worksheets(3).Range("L17"), Order2:=xlDescending, Header:=xlYes
    Worksheets(3).Range("E24:M28").Sort Key1:=Worksheets(3).Range("M24"), Order1:=xlDescending, _
        Key2:=Worksheets(3).Range("L24"), Order2:=xlDescending, Header:=xlYes
End Sub

Я не очень хорошо разбираюсь в VBA, но попробую объяснить, как это настроить. Если у меня не получится, дайте мне знать. ;)

С помощью первой подпрограммы вы определяете, когда функция будет запущена. Строка выше говорит, что DoSort нужно запускать, когда что-либо на листе 1 в ячейках E9 - F32 изменяется.

DoSort сортирует некоторые диапазоны и может быть адаптирована к вашим собственным диапазонам данных. Просто удалите ненужные строки и измените номера листов и диапазоны данных.

Связанный контент