Страницы: 1
RSS
Быстрая составная сортировка значений в таблице
 
Привет
У меня есть таблица в которой мне часто нужно применять СОСТАВНЫЕ сортировки по нескольким полям.
Я нашел как мне кажется сложный путь - добавить 3-4 кнопки и для каждой свой VBA написать.
Это мне кажется частый user case когда используют в таблицу частую и разную фильтрацию, нет ли в экселе встроенных инструментов для сохранения сортировочных настроек?

Код
Sub Sort()
    Dim ws As Worksheet
    Dim tbl As ListObject
    Dim rng As Range
    
    Set ws = ActiveSheet
    Set tbl = ws.ListObjects("myTable")
    Set rng1 = Range("myTable[First Name]")
    Set rng2 = Range("myTable[Last Name]")
    
    With tbl.Sort
        .SortFields.Clear
        .SortFields.Add Key:=rng1, Order:=xlAscending
        .SortFields.Add Key:=rng2, Order:=xlAscending
        .Header = xlYes
        .Apply
    End With
End Sub
 
Так напишите функцию, в которую будете передавать нужные аргументы сортировки(диапазоны и т.д.). Наверное. По описанию мало что вообще понятно по самой задаче. Ну что-то типа того:
Код
Sub Call_MySort()
    Call My_Sort(ActiveSheet.ListObjects("myTable"), _
                Range("myTable[First Name]"), Range("myTable[Last Name]"))
End Sub

Function My_Sort(tbl As ListObject, ParamArray rng())
    Dim x
    With tbl.Sort
        .SortFields.Clear
        For Each x In rng
            .SortFields.Add Key:=x, Order:=xlAscending
        Next
        .Header = xlYes
        .Apply
    End With
End Function
Цитата
Vsevolod написал:
когда используют в таблицу частую и разную фильтрацию
так фильтрацию или сортировку? Потому что как раз для фильтрации есть встроенный инструмент Представления(Вид -Представления).
А для сортировки такого, к сожалению, нет.
Изменено: Дмитрий(The_Prist) Щербаков - 20.09.2019 08:43:33
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, Благодарю, именно про сортировку вопрос. Но заинтересовала Ваша подсказка про Представления.
Не подскажите, в каком разделе представление? View(Вид) не вижу ничего подходящего.



И спасибо огромное за пример VBA - понятно, что есть функция сортировки - а есть функция вызова. Понял, Благодарю!  
 
Цитата
Vsevolod написал:
в каком разделе представление? View(Вид) не вижу ничего подходящего
в английском это должно звучать как Custom Views
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Наверх