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

Вход

Регистрация

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

 

= Мир MS Excel/Номер страницы из колонтитула в оглавление - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Номер страницы из колонтитула в оглавление (Иное/Other)
Номер страницы из колонтитула в оглавление
pips Дата: Вторник, 04.08.2015, 10:47 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день, собственно, по сабжу: есть оглавление в документе. Как достать из колонтитулов остальных листов номера страниц и запихнуть их в оглавление?
Поиск по инету и форуму выдает не то оглавление, которое мне нужно.
Спасибо!
К сообщению приложен файл: 5224176.xlsx (15.9 Kb)
 
Ответить
СообщениеДобрый день, собственно, по сабжу: есть оглавление в документе. Как достать из колонтитулов остальных листов номера страниц и запихнуть их в оглавление?
Поиск по инету и форуму выдает не то оглавление, которое мне нужно.
Спасибо!

Автор - pips
Дата добавления - 04.08.2015 в 10:47
KSV Дата: Вторник, 04.08.2015, 14:17 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
Добрый день!
Как достать из колонтитулов остальных листов номера страниц
никак, т.к. в колонтитулах не номера страниц, а управляющие символы &P
можете проверить[vba]
Код
Лист2.PageSetup.Pages(1).CenterFooter.Text
[/vba]

запихнуть их в оглавление
[vba]
Код
Function GetPageNum(ItemName As String)
     Dim Found As Range, i&, n&
     With Лист2
         Set Found = .UsedRange.Find(ItemName)
         If Found Is Nothing Then GetPageNum = "": Exit Function
         n = Found.Row
         For i = 1 To .HPageBreaks.Count
             If .HPageBreaks(i).Location.Row > n Then Exit For
         Next
         GetPageNum = i
     End With
End Function
[/vba]

[p.s.]Если нужно применять для нескольких листов, то имя листа можно передавать, как аргумент функции.
Если страниц в ширину больше 1, то нужно также проверять свойство .VPageBreaks[/p.s.]
К сообщению приложен файл: 5224176.xlsm (24.9 Kb)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
СообщениеДобрый день!
Как достать из колонтитулов остальных листов номера страниц
никак, т.к. в колонтитулах не номера страниц, а управляющие символы &P
можете проверить[vba]
Код
Лист2.PageSetup.Pages(1).CenterFooter.Text
[/vba]

запихнуть их в оглавление
[vba]
Код
Function GetPageNum(ItemName As String)
     Dim Found As Range, i&, n&
     With Лист2
         Set Found = .UsedRange.Find(ItemName)
         If Found Is Nothing Then GetPageNum = "": Exit Function
         n = Found.Row
         For i = 1 To .HPageBreaks.Count
             If .HPageBreaks(i).Location.Row > n Then Exit For
         Next
         GetPageNum = i
     End With
End Function
[/vba]

[p.s.]Если нужно применять для нескольких листов, то имя листа можно передавать, как аргумент функции.
Если страниц в ширину больше 1, то нужно также проверять свойство .VPageBreaks[/p.s.]

Автор - KSV
Дата добавления - 04.08.2015 в 14:17
pips Дата: Вторник, 04.08.2015, 16:47 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Если нужно применять для нескольких листов, то имя листа можно передавать, как аргумент функции.

Спасибо! А можно чайнику написать как будет выглядеть код при нескольких листах в виде функции? Пробовал разобраться, но только часть кода понял, как работает...
 
Ответить
Сообщение
Если нужно применять для нескольких листов, то имя листа можно передавать, как аргумент функции.

Спасибо! А можно чайнику написать как будет выглядеть код при нескольких листах в виде функции? Пробовал разобраться, но только часть кода понял, как работает...

Автор - pips
Дата добавления - 04.08.2015 в 16:47
krosav4ig Дата: Вторник, 04.08.2015, 16:48 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
как вариант, макрофункция
для работы нужно создать именованные диапазоны
нужно выделить листы с пунктами, выделил ячейку A1, нажать Ctrl+Shift+F3 (Формулы->Определенные имена->Создать из выделенного), нажать ОК (галочка должна быть на "в столбце слева")
сам код макрофункции находится на скрытом листе Макрос1
К сообщению приложен файл: 5224176.xls (45.5 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениекак вариант, макрофункция
для работы нужно создать именованные диапазоны
нужно выделить листы с пунктами, выделил ячейку A1, нажать Ctrl+Shift+F3 (Формулы->Определенные имена->Создать из выделенного), нажать ОК (галочка должна быть на "в столбце слева")
сам код макрофункции находится на скрытом листе Макрос1

Автор - krosav4ig
Дата добавления - 04.08.2015 в 16:48
KSV Дата: Вторник, 04.08.2015, 16:55 | Сообщение № 5
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
как будет выглядеть код при нескольких листах

например, так: [vba]
Код
Function GetPageNum(SheetName As String, ItemName As String)
     Dim Found As Range, i&, n&
     With Worksheets(SheetName)
         Set Found = .UsedRange.Find(ItemName)
         If Found Is Nothing Then GetPageNum = "": Exit Function
         n = Found.Row
         For i = 1 To .HPageBreaks.Count
             If .HPageBreaks(i).Location.Row > n Then Exit For
         Next
         GetPageNum = i
     End With
End Function
[/vba]
К сообщению приложен файл: 9292466.xlsm (25.2 Kb)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
Сообщение
как будет выглядеть код при нескольких листах

например, так: [vba]
Код
Function GetPageNum(SheetName As String, ItemName As String)
     Dim Found As Range, i&, n&
     With Worksheets(SheetName)
         Set Found = .UsedRange.Find(ItemName)
         If Found Is Nothing Then GetPageNum = "": Exit Function
         n = Found.Row
         For i = 1 To .HPageBreaks.Count
             If .HPageBreaks(i).Location.Row > n Then Exit For
         Next
         GetPageNum = i
     End With
End Function
[/vba]

Автор - KSV
Дата добавления - 04.08.2015 в 16:55
pips Дата: Вторник, 04.08.2015, 16:57 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
например, так:

Спасибо большое!
 
Ответить
Сообщение
например, так:

Спасибо большое!

Автор - pips
Дата добавления - 04.08.2015 в 16:57
pips Дата: Вторник, 04.08.2015, 17:01 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
находится на скрытом листе Макрос1

Простите, либо я тупой, либо одно из двух. :D В моем понимании скрытый лист можно найти по Alt+F11, но его там я не нашел...
 
Ответить
Сообщение
находится на скрытом листе Макрос1

Простите, либо я тупой, либо одно из двух. :D В моем понимании скрытый лист можно найти по Alt+F11, но его там я не нашел...

Автор - pips
Дата добавления - 04.08.2015 в 17:01
krosav4ig Дата: Вторник, 04.08.2015, 17:22 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
pips, в vbe листы макросов не отображаются. Чтобы его показать нужно ПКМ по ярлыку любого листа и выбрать показать


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеpips, в vbe листы макросов не отображаются. Чтобы его показать нужно ПКМ по ярлыку любого листа и выбрать показать

Автор - krosav4ig
Дата добавления - 04.08.2015 в 17:22
pips Дата: Вторник, 04.08.2015, 17:27 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
О, вижу, спасибо за информацию, буду разбираться)


Сообщение отредактировал pips - Вторник, 04.08.2015, 17:28
 
Ответить
СообщениеО, вижу, спасибо за информацию, буду разбираться)

Автор - pips
Дата добавления - 04.08.2015 в 17:27
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Номер страницы из колонтитула в оглавление (Иное/Other)
  • Страница 1 из 1
  • 1
Поиск:

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