Страницы: 1
RSS
Автоматизация сортировки данных от А до Я на нескольких листах в пределах одной книги
 
Доброго времени суток!

Есть книга с 45+ листами. Для нормальной функциональности, нужно в части листов отсортировать данные в столбце В2  от А до Я. Можно это как-то автоматизировать? Возможно макрос или что-то другое. Заранее благодарен за помощь.
 
Сортировка нужна в пределах одного листа или нескольких? файл-пример ускорит помощь.
«Бритва Оккама» или «Принцип Калашникова»?
 
Нескольких листов. Но везде это столбец В2
 
Код
Sub sort()
    For i = 2 To Sheets.Count
        With Sheets(i)
            .AutoFilter.sort.SortFields.Clear
            .AutoFilter.sort.SortFields.Add Key:= _
                Range("B1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
                xlSortNormal
            With .AutoFilter.sort
                .Header = xlYes
                .MatchCase = False
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
            End With
        End With
    Next
End Sub
 
skais675, у вас каждый лист сортируется отдельно. Насколько я понял ТС нужно единая сортировка по нескольким листам (все верно?).
т.е. нужно создать единый массив и его отсортировать.
Смотреть эту тему.
«Бритва Оккама» или «Принцип Калашникова»?
 
Выдаёт ошибку.
Изменено: Puhlyi - 21.10.2019 10:53:23
 
А можно в файле-примере сделать любую кнопку и прописать макрос. Возможно я криворукий :)
 
Цитата
bedvit написал:
т.е. нужно создать единый массив и его отсортировать.
нет всё отлично только надо отладить, единый массив не нужен.
 
В файле.
 
Цитата
Puhlyi написал:
нет всё отлично только надо отладить, единый массив не нужен.
Озвучено было по другому:
Цитата
bedvit написал:
Сортировка нужна в пределах одного листа или нескольких?
Цитата
Puhlyi написал:
Нескольких листов. Но везде это столбец В2
Но раз все устраивает, то ОК.
«Бритва Оккама» или «Принцип Калашникова»?
 
Всё таки я криворукий :(

теперь выдаёт такую ошибку
Изменено: Puhlyi - 21.10.2019 12:26:55
 
Вы используете мой файл или свой? Возможно еслиВаш то у Вас изначально нет фильтров.
 
Свой. Оригинальный файл выслал в приват
 
 
У Вас много скрытых листов, и потому знать где нужно и не нужно сортировать - это вопрос.
Как вариант можете так:
Код
Sub ssss()
On Error Resume Next
For i = 2 To Sheets.Count
        With Sheets(i)
            .AutoFilter.sort.SortFields.Clear
            .AutoFilter.sort.SortFields.Add Key:= _
                Range("B1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
                xlSortNormal
            With .AutoFilter.sort
                .Header = xlYes
                .MatchCase = False
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
            End With
         End With
    Next
End Sub
Изменено: skais675 - 21.10.2019 16:07:21
 
Сортировать нужно только те листы, что были в файле-примере.
По любому спасибо что нашли время!
 
Ну тогда так. перечислите все необходимые листы в коде:
Код
Sub ssss()
arr = Array("ВСЕГО 1Т", "ВСЕГО 2Т", "1Т ДОМА", "2Т ДОМА", "1Т ГОСТИ", "2Т ГОСТИ")
For i = 0 To UBound(arr)
        With Sheets(arr(i))
            .AutoFilter.sort.SortFields.Clear
            .AutoFilter.sort.SortFields.Add Key:= _
                Range("B1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
                xlSortNormal
            With .AutoFilter.sort
                .Header = xlYes
                .MatchCase = False
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
            End With
         End With
    Next
End Sub
Изменено: skais675 - 22.10.2019 09:16:24
 
Спасибо огромадное!!!
Страницы: 1
Наверх