Excel это не сложно

Основные форумы => Вопросы по Excel и VBA => Тема начата: Muskin2029 от 30.07.2020, 21:16:07



Название: Два вопроса-уточнения по группировке строк
Отправлено: Muskin2029 от 30.07.2020, 21:16:07
Всем привет.
На Рис.1 показан фрагмент Листа:
(https://c.radikal.ru/c07/2007/33/f5444e829a05.png)
На Рис.2 этот же фрагмент с развернутой вручную последней группой.
Столбцы 3 и 4 - результат следующего кода:
Код: (vb)
For i = 2 To 14
    Cells(i, 3).Value = Rows(i).OutlineLevel
    Cells(i, 4).Value = Rows(i).EntireRow.Hidden
Next
Мне нужно получить строки, где начинается и заканчивается группа и признак скрытости групп.
1. Правильно я понимаю, что начало и конец группы определяется переходом свойства OutlineLevel с 1 на 2 (начало) и переходом обратно на 1 (конец)? Есть ли другие способы?
2. Правильно я понимаю, что скрытность/отображение групп определяется свойством EntireRow.Hidden?
Заранее спасибо.


Название: Re:Два вопроса-уточнения по группировке строк
Отправлено: boa от 31.07.2020, 01:07:30
Здравствуйте,
OutlineLevel и есть определение уровня группировки. Например функции листа:
Код: (vb)
Public Function GroupLevelRow():    GroupLevelRow = Application.Caller.Rows.OutlineLevel:       End Function 'возвращает уровень группировки для строки
Public Function GroupLevelColumn(): GroupLevelColumn = Application.Caller.Columns.OutlineLevel: End Function 'возвращает уровень группировки для столбца

свойство EntireRow.Hidde - имеется у всех строк. и не зависит от группировки, а только от того скрыта строка или нет.
а вот собрать/разложить группировку можно командой
Код: (vb)
.Outline.ShowLevels RowLevels:=1 '  2 или 3..., как надо...


Название: Re:Два вопроса-уточнения по группировке строк
Отправлено: Muskin2029 от 31.07.2020, 10:20:28
Спасибо, значит всё делаю правильно.
И ещё последний вопросик - а чем отличается .EntireRow.Hidden от просто .Hidden?


Название: Re:Два вопроса-уточнения по группировке строк
Отправлено: vikttur от 31.07.2020, 14:36:57
Если обращаться к строке напрямую, то достаточно указать:
Строка.Скрыть? да/нет,
если для диапазона:
диапазон(или ячейка).Вся_строка.Скрыть? да/нет