Страницы: 1
RSS
Удаление группировки с содержимым, начиная с 3 уровня и выше (до 8)
 
Добрый день! Прошу помочь решить пример. Нужно удалить группировку выше 3го уровня (иногда достигает 8-ми). На форуме нашел несколько примеров, но подогнать под свой не смог.
 
результат такой?
 
да, вроде все так. Как должен выглядеть макрос, что бы так получилось?
 
Цитата
Anzic написал:
Как должен выглядеть макрос, что бы так получилось?
Так, как он выглядит в показанном файле )
Только хранить его лучше не в модуле листа, как это сделал Vik_tor, а в стандартном модуле: удалив лист, Вы лишитесь макроса. А модуль листа предназначен в основном для событийных процедур.  
 
Цитата
Юрий М написал:
как это сделал  Vik_tor
макрос не использовал, обозначил цветом 3 верхних уровня, остальное удалил после фильтрации.
 
Понятно. А я увидел в модуле листа код - подумал, что это Ваше ))
 
Цитата
Vik_tor написал:
макрос не использовал, обозначил цветом 3 верхних уровня, остальное удалил после фильтрации.
блин, гениально! ) Спасибо!
Юрий М, макрос это я пытался использовать из других примеров, но не получилось. Забыл удалить.
 
Код
Sub DeleteOutlineLevels()
    Dim r As Range, ar As Range
    With Application
        .ScreenUpdating = 0: .EnableEvents = 0
        With .ActiveSheet
            .Outline.ShowLevels RowLevels:=3
            Set r = .UsedRange.SpecialCells(12)
            .Outline.ShowLevels RowLevels:=8
            r.EntireRow.Hidden = 1
            On Error Resume Next
            For Each ar In .UsedRange.SpecialCells(12).Areas
                ar.EntireRow.Delete xlUp
            Next
            On Error GoTo 0
            .UsedRange.EntireRow.Hidden = 0
        End With
        .ScreenUpdating = 1: .EnableEvents = 1
    End With
End Sub
Страницы: 1
Наверх