Страница 1 из 1

Как в Excel определить уровень группировки

Добавлено: 26 окт 2007, 11:58
behemoth
Добрый день.

Лист Excel.
С помощью команды "Данные"-"Группа и структура"-"Группировать", строки сгруппированы в несколько вложенных уровней. То есть, ячейка в каждом столбце может принадлежать разным уровням группировки. Подскажите, пожалуйста, какая структура (какое свойство) отвечает за принадлежность к уровню группировки. Требуется производить различные действия над данными в ячейке, в зависимости от уровня.

Re: Как в Excel определить уровень группировки

Добавлено: 22 ноя 2007, 19:19
tolikt
Типа такое
ActiveSheet.Rows(ActiveCell.Row).OutlineLevel

Бегемот, если сам давно это нашёл, то на форумах принято и своё решение сообщать.

Re: Как в Excel определить уровень группировки

Добавлено: 05 июл 2009, 23:55
ljuter
А как узнать максимальный уровень группировки без перебора строк?

Re: Как в Excel определить уровень группировки

Добавлено: 06 июл 2009, 14:25
mc-black
Смотрите справку по Outline Object. А вообще, что, строк слишком много? Можно проверить строки и столбцы на всем листе довольно-таки быстро.

Re: Как в Excel определить уровень группировки

Добавлено: 06 июл 2009, 15:06
ljuter
Строк более 3 тыс. Проход по строкам занимает 1-2 минуты. Справку смотрел, но такой функции не нашел, поэтому и обратился за помощью на форум.

Re: Как в Excel определить уровень группировки

Добавлено: 06 июл 2009, 16:28
Aent
Получить максимальный уровень группировки можно сняв её:

Код: Выделить всё

Dim i As Integer
i = 1
Application.ScreenUpdating = False
On Error resume next
Do
    Rows.Ungroup
    if err.number <> 0 then exit do
    i = i + 1
Loop
Application.ScreenUpdating = True
MsgBox "MaxOtlinelevel: " & str(i)
Файл можно предварительно сохранить ;)

Как вариант:
Определите имя MyLEVEL как =ПОЛУЧИТЬ.ЯЧЕЙКУ(28;A1)
(Это функция EXCEL4. Непосредственно использовать её на листе нельзя.)
Затем, поместите используя протяжку значений в ячейки некоего столбца формулу
=MyLEVEL
После этого максимальный уровень группирования получается с помощью функции листа
МАКС, применённой к этому столбцу