Здравствуйте. Смотрел поиском по форуму, перебрал множество вариантов и примеров по моему вопросу. Есть куча всевозможных решений. Нашел для себя почти идеальное решение - пользовательская функция. Все как мне нужно, кроме одного НО. Нужно, чтобы некоторые строки (подзаголовки) были не пронумерованы.
Макрос не мой и что какие команды тут означают я не понимаю. Как бы сделать так, чтобы при пропуске строки макрос брал предыдущее заполненное значение, а не последнюю строку. Пока получается, если оставить пустой одну ячейку, то выводится #ЗНАЧ! и последующая нумерация невозможна.
Прошу Вас помочь в решении вопроса. В приложенном файле сделал две таблицы, как должно быть и как получается на данный момент.
Макрос не мой и что какие команды тут означают я не понимаю. Как бы сделать так, чтобы при пропуске строки макрос брал предыдущее заполненное значение, а не последнюю строку. Пока получается, если оставить пустой одну ячейку, то выводится #ЗНАЧ! и последующая нумерация невозможна.
Прошу Вас помочь в решении вопроса. В приложенном файле сделал две таблицы, как должно быть и как получается на данный момент.
Код |
---|
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 |