Страницы: 1
RSS
Многоуровневая нумерация типа 1.1; 1.1.1
 
Здравствуйте. Смотрел поиском по форуму, перебрал множество вариантов и примеров по моему вопросу. Есть куча всевозможных решений. Нашел для себя почти идеальное решение - пользовательская функция. Все как мне нужно, кроме одного НО. Нужно, чтобы некоторые строки (подзаголовки) были не пронумерованы.
Макрос не мой и что какие команды тут означают я не понимаю. Как бы сделать так, чтобы при пропуске строки макрос брал предыдущее заполненное значение, а не последнюю строку. Пока получается, если оставить пустой одну ячейку, то выводится #ЗНАЧ! и последующая нумерация невозможна.
Прошу Вас помочь в решении вопроса. В приложенном файле сделал две таблицы, как должно быть и как получается на данный момент.
Код
Function нумер(lvl As Integer)
    Application.Volatile
    Dim newn() As String
    last = Application.Caller.Offset(-1, 0)
    lastn = Split(last, ".")
    ReDim newn(lvl - 1)
    On Error Resume Next
    For i = 0 To lvl - 1
        Err = 0
        newn(i) = lastn(i)
        If Err <> 0 Then newn(i) = 1
    Next
    If Err = 0 Then newn(i - 1) = newn(i - 1) + 1
    For i = 0 To lvl - 1
        If нумер = "" Then нумер = newn(i) Else нумер = нумер & "." & newn(i)
    Next
End Function
 
может как-то так (см. файл)
Изменено: New - 19.01.2021 19:57:41
 
Есть проблема когда встречается 2 подзаголовка подряд. Во вложенном файле видно, что строка 26 начинает опять нумероваться с 1.1.1, хотя должно быть 2.1.1. Может есть возможность сделать нумерацию, в зависимости от последней заполненной ячейки выше?
Страницы: 1
Наверх