Сортировка диапазона на основе переменной листа с помощью VBA - PullRequest
0 голосов
/ 08 ноября 2019

Сценарий: У меня есть лист, и я пытаюсь отсортировать его часть. Внутри листа у меня есть выпадающий список, который позволяет мне выбрать значения (aaa, bbb, ccc). Каждое из этих значений представляет столбец, и при выборе код должен отсортировать диапазон по этому столбцу.

Проблема: Процесс работает для одного из значений в раскрывающемся списке, но недля остальных (работает, но ничего не происходит).

Код:

Sub ratecolumnssort()

    Dim LastRow As Integer
    Dim sortColumn As String, sortAgent As String

    shtMonitoring.Activate
    LastRow = shtMonitoring.Cells(shtMonitoring.rows.count, "B").End(xlUp).row

    sortAgent = shtMonitoring.Cells(8, 9) ' this is where the dropdown with values aaa, bbb and ccc is

    If sortAgent = "aaa" Then
        sortColumn = "F"
    ElseIf sortAgent = "bbb" Then
        sortColumn = "H"
    ElseIf sortAgent = "ccc" Then
        sortColumn = "J"
    End If

    With ActiveSheet.sort
        .SortFields.Add key:=Range(sortColumn & "11"), Order:=xlAscending
        .SetRange Range("B11", "N" & LastRow )
        .Header = xlYes
        .Apply
    End With

End Sub

Вопрос: Что я здесь не так делаю?

1 Ответ

2 голосов
/ 08 ноября 2019

Сначала необходимо очистить настройки сортировки.

 With ActiveSheet.Sort
        .SortFields.Clear 'add this line
        'as before
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...