Приветствую! Несколько лет назад задался вопросом, как можно организовать оглавление в MS Excel и нашел вполне рабочее решение. По работе приходится использовать/создавать многостраничные документы с оглавлением, когда например, около двухсот листов, и вносишь постоянно данные, соответственно нужно постоянно заменять номера страниц вручную. Незатейливая функция решила мою проблему: [vba]
Код
Function DetectCurrentPage(a As Object) As Integer ' ' Показывает номер страницы
For i = 1 To ActiveSheet.HPageBreaks.Count If a.Row < ActiveSheet.HPageBreaks(i).Location.Row Then Exit For Next DetectCurrentPage = i End Function
[/vba]
Использую таким образом: Вставляю функцию напротив названия разделов (за пределами страницы) В оглавление вставляю адрес необходимой ячейки с номером страницы Название разделов, теперь перемещается вместе с той ячейкой, где указан номер страницы Примечание: что бы обновились номера страниц, нужно удалить строку в любом месте книги (не стал разбираться в причине) Если у кого то есть более изящное решение, просьба поделиться.
Приветствую! Несколько лет назад задался вопросом, как можно организовать оглавление в MS Excel и нашел вполне рабочее решение. По работе приходится использовать/создавать многостраничные документы с оглавлением, когда например, около двухсот листов, и вносишь постоянно данные, соответственно нужно постоянно заменять номера страниц вручную. Незатейливая функция решила мою проблему: [vba]
Код
Function DetectCurrentPage(a As Object) As Integer ' ' Показывает номер страницы
For i = 1 To ActiveSheet.HPageBreaks.Count If a.Row < ActiveSheet.HPageBreaks(i).Location.Row Then Exit For Next DetectCurrentPage = i End Function
[/vba]
Использую таким образом: Вставляю функцию напротив названия разделов (за пределами страницы) В оглавление вставляю адрес необходимой ячейки с номером страницы Название разделов, теперь перемещается вместе с той ячейкой, где указан номер страницы Примечание: что бы обновились номера страниц, нужно удалить строку в любом месте книги (не стал разбираться в причине) Если у кого то есть более изящное решение, просьба поделиться.Zlodey