Количество в фильтре на элемент (VBA / Excel) - PullRequest
0 голосов
/ 12 сентября 2018

Я просто работаю над макросом, который обрабатывает внешний отчет, этот отчет содержит 75 000 записей. Мне нужно найти способ фильтрации по элементам и сортировать элементы по максимальному количеству каждого из них. Это пример:

enter image description here

Дайте мне знать, если вам нужно больше деталей, и спасибо за ваше внимание.

Хорошей идеей должно быть применение фильтра к элементу для сортировки и упорядочения на основе максимального количества значений.

With dataSheet
    .Activate
    .Range("A1:B1").Select
    .Range("A1:B1").AutoFilter
    .AutoFilter.Sort.SortFields.Clear
    .AutoFilter.Sort.SortFields.Add Key:=Range("B1"), SortOn:=xlSortOnValues, Order:=xlDescending (Instead of Descending add a count and filter based on the max count), DataOption:=xlSortNormal
    With .AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Selection.AutoFilter
End With

1 Ответ

0 голосов
/ 12 сентября 2018

Этот код изменяет ваш код, чтобы избавиться от Select, и добавляет 2 ключа сортировки, Item & Margin. Auto filter в column 1, позволяет фильтровать отдельные элементы. Вы можете изменить свой рабочий лист в соответствии со своими потребностями.

Dim lRow As Long
lRow = Range("A" & Rows.Count).End(xlUp).Row

    With ThisWorkbook.Worksheets("Sheet1")
        .Columns(1).AutoFilter

        With .Sort
            .SortFields.Clear
            .SortFields.Add Key:=Range("A2:A" & lRow), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
            .SortFields.Add Key:=Range("B2:B" & lRow), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

            .SetRange Range("A2:B" & lRow)
            .Header = xlNo
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...