Программисты 1С любят создавать отчеты Excel, которые содержат группировку строк. С одной стороны это достаточно удобно, однако появляется ряд проблем:
  1. Сложно скопировать строки определенного уровня, так как при этом отображаются уровни выше.
  2. При копировании строк определенного уровня копируются также и скрытые уровни.
  3. При протягивании формул они распространяются и на скрытые уровни.

С помощью самодельной функции на VBS можно заполнить отдельный столбец, который содержит нумерацию группировки строк. А далее установить фильтр по данному столбцу или заполнить ряд дополнительных колонок.

Функция =УРОВЕНЬСТРОКИ(ЯЧЕЙКА) вернет уровень группировки строки (от 1 до 8)  в указанной ячейке.

Для того чтобы функция заработала, ее надо сначала создать! Как создать функцию в эксель:

1. Открыть файл в эксель и перейти в меню Вид-Макросы

2. Добавить макрос под любым именем.

3. В тело добавить функцию

Function УРОВЕНЬСТРОКИ(ЯЧЕЙКА As Range) As Long
    УРОВЕНЬСТРОКИ = ЯЧЕЙКА.Rows(1).OutlineLevel
End Function

4. Готово. Можно использовать имя функции в ячейке, подобно любым другим, например таким как "=СУММ(...".

5. Использование функции в ячейке файла:

You have no rights to post comments