Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Создание оглавления с автоматической нумерацией страниц - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Создание оглавления с автоматической нумерацией страниц
Zlodey Дата: Среда, 02.11.2016, 10:41 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 40% ±

Excel 2013
Приветствую!
Несколько лет назад задался вопросом, как можно организовать оглавление в 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]

Использую таким образом:
Вставляю функцию напротив названия разделов (за пределами страницы)
В оглавление вставляю адрес необходимой ячейки с номером страницы
Название разделов, теперь перемещается вместе с той ячейкой, где указан номер страницы
Примечание: что бы обновились номера страниц, нужно удалить строку в любом месте книги (не стал разбираться в причине)
Если у кого то есть более изящное решение, просьба поделиться.
К сообщению приложен файл: _Microsoft_Exce.xlsm (16.1 Kb)


Сообщение отредактировал Manyasha - Среда, 02.11.2016, 10:57
 
Ответить
СообщениеПриветствую!
Несколько лет назад задался вопросом, как можно организовать оглавление в 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
Дата добавления - 02.11.2016 в 10:41
_Boroda_ Дата: Среда, 02.11.2016, 12:42 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16714
Репутация: 6503 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
что бы обновились номера страниц, нужно удалить строку в любом месте книги

Можно просто добавить в функцию второй строкой запись
[vba]
Код
Application.Volatile
[/vba]
Тогда это будет как бы волатильная функция, реагирующая на события примерно также, как функции ТДАТА или СМЕЩ
К сообщению приложен файл: 8597106.xlsm (15.0 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
что бы обновились номера страниц, нужно удалить строку в любом месте книги

Можно просто добавить в функцию второй строкой запись
[vba]
Код
Application.Volatile
[/vba]
Тогда это будет как бы волатильная функция, реагирующая на события примерно также, как функции ТДАТА или СМЕЩ

Автор - _Boroda_
Дата добавления - 02.11.2016 в 12:42
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!