Добрый день!
Пытаюсь сделать первый макрос. Не выходит. Такое впечатление, что диапазоны напутал. Есть файл с блоками инфо. Кол-во блоков и строк в блоке может быть разное. Необходимо все диапазоны от колонки B до K отфильтровать по шапке. По колонкам от меньшего к большему. Фильтр в такой последовательности: Размер, ЗО, Город, Размер, ЗО.
Может кто-нибудь подсказать как макрос подправить?
Спасибо![
Пытаюсь сделать первый макрос. Не выходит. Такое впечатление, что диапазоны напутал. Есть файл с блоками инфо. Кол-во блоков и строк в блоке может быть разное. Необходимо все диапазоны от колонки B до K отфильтровать по шапке. По колонкам от меньшего к большему. Фильтр в такой последовательности: Размер, ЗО, Город, Размер, ЗО.
Может кто-нибудь подсказать как макрос подправить?
Спасибо![
Код |
---|
Dim i As Long, lr As Long, cell As Range Application.ScreenUpdating = False Application.DisplayAlerts = False lr = Cells(Rows.Count, 1).End(xlUp).Row For i = lr To 1 Step -1 For k = 2 To 11 ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Clear ' горизонтальный фильтр для строки 1 от меньшего к большему ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Add Key:=Range(Cells(Rows.Count, 1).End(xlToRight).Row), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Лист1").Sort .SetRange Range(Column.Count, 2).End(xlToRight).Column .Header = xlYes .MatchCase = False .Orientation = xlLeftToRight .SortMethod = xlPinYin .Apply End With ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Clear ' горизонтальный фильтр для строки 2 от меньшего к большему ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Add Key:=Range(Cells(Rows.Count, 2).End(xlToRight).Row), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Лист1").Sort .SetRange Range(Column.Count, 2).End(xlToRight).Column .Header = xlYes .MatchCase = False .Orientation = xlLeftToRight .SortMethod = xlPinYin .Apply End With ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Clear ' горизонтальный фильтр для строки 3 от меньшего к большему ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Add Key:=Range(Cells(Rows.Count, 3).End(xlToRight).Row), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Лист1").Sort .SetRange Range(Column.Count, 2).End(xlToRight).Column .Header = xlYes .MatchCase = False .Orientation = xlLeftToRight .SortMethod = xlPinYin .Apply End With ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Clear ' горизонтальный фильтр для строки 1 от меньшего к большему ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Add Key:=Range(Cells(Rows.Count, 1).End(xlToRight).Row), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Лист1").Sort .SetRange Range(Column.Count, 2).End(xlToRight).Column .Header = xlYes .MatchCase = False .Orientation = xlLeftToRight .SortMethod = xlPinYin .Apply End With ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Clear ' горизонтальный фильтр для строки 2 от меньшего к большему ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Add Key:=Range(Cells(Rows.Count, 2).End(xlToRight).Row), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Лист1").Sort .SetRange Range(Column.Count, 2).End(xlToRight).Column .Header = xlYes .MatchCase = False .Orientation = xlLeftToRight .SortMethod = xlPinYin .Apply End With Application.ScreenUpdating = True Application.DisplayAlerts = TrueEnd Sub |