| Цитата |
|---|
| А мне нужно видеть только 7-ю группу и никакие другие. |
Пользовательская функция VBA, которая определяет уровень группировки строки, выглядит примерно так:
| Код |
|---|
Public Function RowOutlineLevel() As Byte Application.Volatile Dim rCallerCell As Range: Set rCallerCell = Application.Caller RowOutlineLevel = rCallerCell.Rows.OutlineLevel If RowOutlineLevel = 1 Then Dim wsh As Worksheet Set wsh = rCallerCell.Worksheet Dim bSummaryRowIsAbove As Boolean bSummaryRowIsAbove = wsh.Outline.SummaryRow = xlSummaryAbove Dim lCallerCellRow As Long: lCallerCellRow = rCallerCell.Row If bSummaryRowIsAbove And lCallerCellRow = wsh.Rows.Count _ Or Not bSummaryRowIsAbove And lCallerCellRow = 1 Then RowOutlineLevel = 0 Exit Function End If Dim bNextCellRowOutlineLevel As Byte bNextCellRowOutlineLevel = rCallerCell.Rows(-2 * bSummaryRowIsAbove).OutlineLevel RowOutlineLevel = 1 + (bNextCellRowOutlineLevel = 1) End If End Function |
Скрытый текст |
|---|
| Код вышеприведенной функции нужно добавить в стандартный модуль проекта данной книги. Для этого:
|
Далее во все строки добавленного столбца (в которых есть группировка), нужно ввести приведенную ниже формулу:
| Код |
|---|
= RowOutlineLevel() |
После этого нужно развернуть все уровни группировки (структуры), так как фильтрация работает только с видимыми строками.
Последний шаг - к добавленному столбцу применить фильтр, выбрав 7 из списка автофильтра.
В результате вышеописанных действий вы будете видеть только 7-й уровень группировки. Или любой другой по вашему выбору, если на последнем шаге в автофильтре добавленного столбца выбрать другое значение.
Изменено: - 24.05.2025 17:52:35