Добрый день, собственно, по сабжу: есть оглавление в документе. Как достать из колонтитулов остальных листов номера страниц и запихнуть их в оглавление? Поиск по инету и форуму выдает не то оглавление, которое мне нужно. Спасибо!
Добрый день, собственно, по сабжу: есть оглавление в документе. Как достать из колонтитулов остальных листов номера страниц и запихнуть их в оглавление? Поиск по инету и форуму выдает не то оглавление, которое мне нужно. Спасибо!pips
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.]
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
Если нужно применять для нескольких листов, то имя листа можно передавать, как аргумент функции.
Спасибо! А можно чайнику написать как будет выглядеть код при нескольких листах в виде функции? Пробовал разобраться, но только часть кода понял, как работает...
Если нужно применять для нескольких листов, то имя листа можно передавать, как аргумент функции.
Спасибо! А можно чайнику написать как будет выглядеть код при нескольких листах в виде функции? Пробовал разобраться, но только часть кода понял, как работает...pips
как вариант, макрофункция для работы нужно создать именованные диапазоны нужно выделить листы с пунктами, выделил ячейку A1, нажать Ctrl+Shift+F3 (Формулы->Определенные имена->Создать из выделенного), нажать ОК (галочка должна быть на "в столбце слева") сам код макрофункции находится на скрытом листе Макрос1
как вариант, макрофункция для работы нужно создать именованные диапазоны нужно выделить листы с пунктами, выделил ячейку A1, нажать Ctrl+Shift+F3 (Формулы->Определенные имена->Создать из выделенного), нажать ОК (галочка должна быть на "в столбце слева") сам код макрофункции находится на скрытом листе Макрос1krosav4ig
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
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