2017-01-08 2 views
2

Я хотел бы создать кнопку, чтобы скрыть и отобразить определенную группу с помощью VBA. Код у меня будет скрыть или отобразить все группы в указанном уровне:Скрыть/показать специальную группу

Sub Macro1() 
ActiveSheet.Outline.ShowLevels RowLevels:=2 
End Sub 

Допустим, я просто хочу, чтобы отобразить вторую группу на уровне группировки 2, как я могу это сделать?

+0

Здесь предложение. В этом сообщении вы получаете уровень активной строки http://stackoverflow.com/questions/41528780/hide-unhide-specific-group#. Вам нужно зациклиться на строках, а затем найти первую строку и конечную строку второй группы. Затем проверьте, не скрыт ли этот диапазон. –

+0

Группа каких? – KyloRen

+0

Группа будет последовательными рядами с одинаковым уровнем. –

ответ

0

Говорите, что «вторая группа на уровне группировки 2» - это строки 7-10. Тогда этот код будет отобразите эту группу:

ActiveSheet.Rows(10).ShowDetail = True 

Однако, это, вероятно, лучше, чтобы превратить его в функцию переключения, которая будет скрыть/показать группу. Ниже приведена общая функция переключения (ToggleOutlineGroup), которая позволит вам скрыть/отобразить группу, передав лист, на котором находится контур, и строка. Строкой может быть любая строка в группе, если она не является частью другой подгруппы. Для простоты я использовал последнюю строку группы. Sub foo - пример вызова функции.

Sub foo() 

    ToggleOutlineGroup Sheet1, 10 

End Sub 


Sub ToggleOutlineGroup(sht As Worksheet, row As Long) 

    sht.Rows(row).ShowDetail = Not (sht.Rows(row).ShowDetail) 

End Sub 
Смежные вопросы