Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2015, 11:04   #1
27102014
Форумчанин
 
Регистрация: 27.10.2014
Сообщений: 248
По умолчанию нумерация в нижнем колонтитуле

Всем доброго времени суток!
Возникла необходимость сделать макросом нумерацию страниц в Excel. Задача такая: на двух листах (например, Содержание и Текст) нахадятся страницы, нужно начать нумерацию с листа Содержание и закончить на листе Текст, количество страниц может быть различным.

Поискал решение в интернете, ничего похоже не нашел, придумал такое решение для нижнего колонтитула - может кому-нибудь пригодится
Код:
 Sub Макрос()
'

 Worksheets("Содержание").Select
 
 i = 2 ' начальный номер страницы, с которого нужно начать нумерацию
ActiveSheet.PageSetup.FirstPageNumber = i
ActiveSheet.PageSetup.RightFooter = "&P" 'CenterFooter - если по центру

R = ActiveSheet.HPageBreaks.Count + 1 'счетчик кол-ва страниц на листе
Worksheets("Текст").Select
ActiveSheet.PageSetup.FirstPageNumber = R + i
ActiveSheet.PageSetup.RightFooter = "&P" 'CenterFooter


End Sub
27102014 вне форума Ответить с цитированием
Старый 29.05.2015, 11:53   #2
27102014
Форумчанин
 
Регистрация: 27.10.2014
Сообщений: 248
По умолчанию

Т.к. это всего лишь кусок кода, возник вопрос - можно ли в формуле прописать ссылку на колонтитул? А1 = колонтитул страницы 2?
Никто не сталкивался с такой задачей?
27102014 вне форума Ответить с цитированием
Старый 29.05.2015, 18:12   #3
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Задача такая: на двух листах (например, Содержание и Текст) нахадятся страницы, нужно начать нумерацию с листа Содержание и закончить на листе Текст, количество страниц может быть различным.

Включите нумерацию страниц на обоих листах, выделите оба и распечатайте: получите сквозную нумерацию страниц.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 01.06.2015, 10:04   #4
27102014
Форумчанин
 
Регистрация: 27.10.2014
Сообщений: 248
По умолчанию

Вся суть задачи как раз в том, чтобы исключить ручные действия.
Пока решил задачу так - собираю оглавление, считаю сколько оно занимает места (1 или 2 страницы), далее собираю текст и оглавление снова, напротив позиции текста в оглавлении ставится формула номер строки. Формулу нашел на нашем сайте - лень искать ссылку, кажется автор EducatedFool .
Код:
Function PageNumber(cel As Range) As Long
    Dim ws As Worksheet, rgBreaks As Range, hBreak As HPageBreak
    Dim vBreak As VPageBreak, i As Long, j As Long, k As Long, n As Long
    Set ws = cel.Parent
    For Each hBreak In ws.HPageBreaks
        If hBreak.Location.Row > cel.Row Then Exit For
        i = i + 1
    Next
    For Each vBreak In ws.VPageBreaks
        If vBreak.Location.Column > cel.Column Then Exit For
        j = j + 1
    Next
    PageNumber = j * ws.VPageBreaks.Count + i + 1 + 2 'если лист СОДЕРЖАНИЕ второй и всего один
End Function
Т.к. Содержание может быть на двух листах, в основной код макроса добавил оперетора Select Case - и просто добавил еще одну такую же формулу, но с таким условием
Код:
PageNumber = j * ws.VPageBreaks.Count + i + 1 + 3 'если лист СОДЕРЖАНИЕ второй и их два
Еще не тестировал, но вроде как должно работать
27102014 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать изображение ссылкой в колонтитуле документа Word? joil Microsoft Office Word 0 17.10.2013 05:03
vb.net Обратиться к таблице в колонтитуле Word документа ольгаг Общие вопросы .NET 3 08.04.2013 09:55
Программно создать поле в колонтитуле madster Microsoft Office Word 11 26.06.2012 16:04
ссылка на ячейку в колонтитуле? all4you Microsoft Office Excel 2 25.01.2012 14:31
Номер страницы в верхнем колонтитуле смещает осн. текст bdfy Microsoft Office Word 0 19.05.2010 23:53