Vba excel номер страницы

0 / 0 / 0

Регистрация: 30.05.2010

Сообщений: 13

1

10.06.2010, 09:18. Показов 22416. Ответов 6


Студворк — интернет-сервис помощи студентам

при переходе в режим предпросмотра и после выхода из него можно (так же при задании областей) можно видеть, что в фоновом изображении Excel отображает номера страниц.

подскажите, пожалуйста, где этот номер хранится и можно ли определить к какому номеру страницы принадлежит выбранная ячейка



0



petr-sev

496 / 130 / 19

Регистрация: 30.03.2010

Сообщений: 224

10.06.2010, 14:54

2

как решить эту задачу в лоб — не знаю
предлагаю вариант в обход:
у листа есть коллекция горизонтальных разделителей HPageBreaks
у каждого разделителя есть свойство .Location.Row, которое содержит номер строки, перед которой этот разделитель вставлен

Visual Basic
1
2
3
4
5
For I = 1 To ActiveSheet.HPageBreaks.Count
    If ActiveCell.Row < ActiveSheet.HPageBreaks(I).Location.Row - 1 Then Exit For
    
Next
MsgBox "Текущая строка на " & CStr(I) & "-й странице"



2



0 / 0 / 0

Регистрация: 30.05.2010

Сообщений: 13

10.06.2010, 17:54

 [ТС]

3

очень интересная идея, огромное спасибо



0



EducatedFool

0 / 0 / 0

Регистрация: 28.09.2009

Сообщений: 88

11.06.2010, 01:10

4

Воспользовался поиском — нашел такие варианты:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Public Sub PageNumner()
    Dim VPB As Excel.VPageBreak
    Dim HPB As Excel.HPageBreak
    Dim intVPBC As Integer
    Dim intHPPC As Integer
    Dim lngPage As Long
    
    lngPage = 1
    
    If Activesheet.PageSetup.Order = xlDownThenOver Then
        intHPPC = Activesheet.HPageBreaks.Count + 1
        intVPBC = 1
    Else
        intVPBC = Activesheet.VPageBreaks.Count + 1
        intHPPC = 1
    End If
 
    For Each VPB In Activesheet.VPageBreaks
        If VPB.Location.Column > ActiveCell.Column Then
            Exit For
        End If
        
        lngPage = lngPage + intHPPC
    Next VPB
    
    For Each HPB In Activesheet.HPageBreaks
        If HPB.Location.Row > ActiveCell.Row Then
            Exit For
        End If
            
        lngPage = lngPage + intVPBC
    Next HPB
    
    MsgBox "Номер страницы активной ячейки = " & lngPage
End Sub
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Function PageNumber(cel As Range, Optional bEntireWorkbookNumbering As Boolean = False, _
    Optional vUpdatePageNumbering As Variant, Optional bAcrossThenDown As Boolean = False) As Long
Dim ws As Worksheet
Dim rgBreaks As Range
Dim hBreak As HPageBreak
Dim vBreak As VPageBreak
Dim 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
If bAcrossThenDown Then 'Print pages across, then down
    PageNumber = i * ws.HPageBreaks.Count + j + 1
Else    'Print pages down, then across
    PageNumber = j * ws.VPageBreaks.Count + i + 1
End If
If bEntireWorkbookNumbering Then
    n = ws.Index
    If n > 1 Then
        n = n - 1
        For k = 1 To n
            Select Case Sheets(k).Type
            Case xlChart
                PageNumber = PageNumber + 1
            Case xlWorksheet
                i = Worksheets(k).HPageBreaks.Count
                j = Worksheets(k).VPageBreaks.Count
                PageNumber = PageNumber + (i + 1) * (j + 1)
            End Select
        Next
    End If
End If
End Function
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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
End Function



0



ironegg

1904 / 781 / 31

Регистрация: 11.02.2010

Сообщений: 1,567

11.06.2010, 03:12

5

вопрос, конечно, решенный, но раз наваял, то выложу

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Public Sub a()
If ActiveWindow.Selection.Cells.Count > 1 Then MsgBox "âûäåëèòå îäíó ÿ÷;åéêó!": Exit Sub
For Each hpb In ActiveSheet.HPageBreaks
    If Not (ActiveCell.Row < hpb.Location.Row) Then
        RowPage = RowPage + 1
    End If
Next hpb
For Each vpb In ActiveSheet.VPageBreaks
    If Not (ActiveCell.Column < vpb.Location.Column) Then
        ColumnPage = ColumnPage + 1
    End If
Next vpb
If ActiveSheet.PageSetup.Order = xlDownThenOver Then
    ActivePage = ColumnPage * (ActiveSheet.HPageBreaks.Count + 1) + RowPage + 1
Else
    ActivePage = RowPage * (ActiveSheet.VPageBreaks.Count + 1) + ColumnPage + 1
End If
MsgBox ActivePage
End Sub



1



0 / 0 / 0

Регистрация: 30.05.2010

Сообщений: 13

11.06.2010, 08:09

 [ТС]

6

благодарствую.

*пошёл разбираться*



0



1 / 1 / 0

Регистрация: 17.11.2010

Сообщений: 40

17.11.2010, 14:20

7

Доброго времени суток

Хотел спросить совета. Итак есть табличка (некая форма док-та). Ее нужно в 4-х экземплярах на печать выдавать (данные в экземлярах разные, но форма одна). Так вот вопрос — как можно определить границу печатного листа при копировании-вставки этой формы?

ActiveSheet.HPageBreaks.Count пока я не вылезу за диапазон 1-го листа, значение = 0. Соответственно и границу (последнюю строку листа) неполучается вычислить…

Можно конечно сделать по простому — сначала копировать, потом определять границы и добивать до нужного пустыми строками, но м.б. есть более красивый выход?



0



Как вставить номер страницы в ячейку / верхний / нижний колонтитул в Excel?

При печати файла Excel вам может потребоваться вставить номера страниц в страницы, чтобы напечатанный файл был аккуратным и читабельным. В этой статье я расскажу о некоторых быстрых приемах, как вставить номера страниц в ячейку, верхний или нижний колонтитул.

Вставить номер страницы в верхний / нижний колонтитул на одном листе

Вставить номер страницы в верхний / нижний колонтитул на нескольких листах

Вставить номер страницы в ячейку с кодом VBA

Удалить сразу все номера страниц в Excel


стрелка синий правый пузырь Вставить номер страницы в верхний / нижний колонтитул на одном листе

Обычно мы можем быстро вставить номера страниц в верхний или нижний колонтитул, используя Верхний и нижний колонтитулы функции, сделайте следующее:

1. Перейдите к листу, номера страниц которого вы хотите вставить в верхний или нижний колонтитул.

2. Затем нажмите Вставить > Верхний и нижний колонтитулы, и ваш рабочий лист будет в Макет страницы просмотреть, см. снимок экрана:

документ вставить номера страниц 1

3. Щелкните верхний или нижний колонтитул, куда вы хотите вставить номер страницы, а затем Дизайн вкладка с Инструменты для верхних и нижних колонтитулов отображается на ленте, затем щелкните Дизайн > Номер страницы, см. снимок экрана:

документ вставить номера страниц 2

4. И вы можете увидеть заполнитель & [Страница] отображаются в выбранном разделе, затем щелкните в любом месте за пределами области верхнего или нижнего колонтитула, чтобы отобразить номера страниц. Смотрите скриншот:

документ вставить номера страниц 3

5. Теперь вы можете вернуться к нормальному виду, нажав Вид > нормальная, и когда вы распечатаете этот рабочий лист, вы увидите, что номера страниц были вставлены в выбранный вами верхний или нижний колонтитул.

Внимание: Если вы хотите, чтобы номера страниц отображались в формате 1 из 15, 2 из 15, вам просто нужно напрямую ввести это & [Страница] из & [Страниц] в поле верхнего или нижнего колонтитула, см. снимок экрана:

документ вставить номера страниц 4


стрелка синий правый пузырь Вставить номер страницы в верхний / нижний колонтитул на нескольких листах

Вышеуказанный метод может помочь вам вставить номера страниц в один рабочий лист. Если вы хотите вставить номера страниц во все рабочие листы книги, чтобы все страницы были пронумерованы в последовательном порядке, сделайте следующее:

1. Выберите все вкладки листа, затем перейдите к Макет страницы вкладку и щелкните Кнопка запуска диалогового окна значок в Параметры страницы группа, см. снимок экрана:

документ вставить номера страниц 5

2. В Параметры страницы диалоговое окно, щелкните Верхний / нижний колонтитул Вкладка, а затем нажмите кнопку Пользовательский заголовок or Пользовательские Подвал чтобы установить нужный верхний или нижний колонтитул, см. снимок экрана:

документ вставить номера страниц 6

3. И в заголовок or нижний колонтитул диалоговое окно, укажите место, куда вставляются номера страниц, щелкнув внутри Левая часть:, Центральная секция: или Правый раздел: поле, как вам нужно, а затем щелкните Вставить номер страницы значок и заполнитель & [Страница] появляется. Смотрите скриншот:

документ вставить номера страниц 7

Примечание: Введите это & [Страница] из & [Страниц] в поле верхнего или нижнего колонтитула, если вы хотите, чтобы номера страниц отображались как 1 из 45, 2 из 45…

4. Затем нажмите OK > OK Чтобы закрыть диалоговые окна, при печати этой книги в предварительном просмотре печати вы можете видеть, что все номера страниц вставлены в верхний или нижний колонтитул в последовательном порядке.


стрелка синий правый пузырь Вставить номер страницы в ячейку с кодом VBA

Вам легко вставить номера страниц в верхний или нижний колонтитул, но, если вам нужно вставить номера страниц в ячейку листа, у вас нет прямого способа сделать это. Следующий код VBA может помочь вам решить эту проблему.

1. Щелкните ячейку, в которой вы хотите отобразить номер страницы этой ячейки.

2. Удерживайте ALT + F11 ключи, и он открывает Microsoft Visual Basic для приложений окно.

3. Нажмите Вставить > Модулии вставьте следующий код в Модули Окно.

Код VBA: вставить номер текущей страницы в ячейку:

Sub pagenumber()
'updateby Extendoffice 20160506
    Dim xVPC As Integer
    Dim xHPC As Integer
    Dim xVPB As VPageBreak
    Dim xHPB As HPageBreak
    Dim xNumPage As Integer
    xHPC = 1
    xVPC = 1
    If ActiveSheet.PageSetup.Order = xlDownThenOver Then
        xHPC = ActiveSheet.HPageBreaks.Count + 1
    Else
        xVPC = ActiveSheet.VPageBreaks.Count + 1
    End If
    xNumPage = 1
    For Each xVPB In ActiveSheet.VPageBreaks
        If xVPB.Location.Column > ActiveCell.Column Then Exit For
        xNumPage = xNumPage + xHPC
    Next
    For Each xHPB In ActiveSheet.HPageBreaks
        If xHPB.Location.Row > ActiveCell.Row Then Exit For
        xNumPage = xNumPage + xVPC
    Next
    ActiveCell = "Page " & xNumPage & " of " & Application.ExecuteExcel4Macro("GET.DOCUMENT(50)")
End Sub

4, Затем нажмите F5 ключ для запуска этого кода, и номер страницы этой ячейки отображается в выбранной ячейке, см. снимок экрана:

документ вставить номера страниц 8


стрелка синий правый пузырь Удалить сразу все номера страниц в Excel

Чтобы удалить все номера страниц, вы можете выполнить следующие действия:

1. Выберите все вкладки листа и перейдите к Макет страницы вкладку на ленте, затем щелкните Кнопка запуска диалогового окна значок в Параметры страницы группа, см. снимок экрана:

документ вставить номера страниц 9

2. В Параметры страницы диалоговое окно, нажмите Верхний / нижний колонтитул вкладку, а затем выберите (Нет) из заголовок or нижний колонтитул выпадающий список, см. снимок экрана:

документ вставить номера страниц 10

3. Затем нажмите OK Кнопка, все номера страниц удаляются из книги сразу.


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Формулировка задачи:

при переходе в режим предпросмотра и после выхода из него можно (так же при задании областей) можно видеть, что в фоновом изображении Excel отображает номера страниц.
подскажите, пожалуйста, где этот номер хранится и можно ли определить к какому номеру страницы принадлежит выбранная ячейка

Код к задаче: «Определение номера страницы в excel»

textual

Public Sub a()
If ActiveWindow.Selection.Cells.Count > 1 Then MsgBox "âûäåëèòå îäГ*Гі ГїГ·;åéêó!": Exit Sub
For Each hpb In ActiveSheet.HPageBreaks
    If Not (ActiveCell.Row < hpb.Location.Row) Then
        RowPage = RowPage + 1
    End If
Next hpb
For Each vpb In ActiveSheet.VPageBreaks
    If Not (ActiveCell.Column < vpb.Location.Column) Then
        ColumnPage = ColumnPage + 1
    End If
Next vpb
If ActiveSheet.PageSetup.Order = xlDownThenOver Then
    ActivePage = ColumnPage * (ActiveSheet.HPageBreaks.Count + 1) + RowPage + 1
Else
    ActivePage = RowPage * (ActiveSheet.VPageBreaks.Count + 1) + ColumnPage + 1
End If
MsgBox ActivePage
End Sub

Полезно ли:

11   голосов , оценка 4.636 из 5

Можно ли вытащить из колонтитулов номер страницы?

yuka

Дата: Среда, 06.02.2013, 09:44 |
Сообщение № 1

Группа: Пользователи

Ранг: Участник

Сообщений: 94


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Доброе утро! Суть я описала в теме. Есть книга, в ней огромное количество строк. Оглавление у меня — это ссылка на ячейку. Честно говоря, в лом вручную прописывать страницы, тем более, что количество строк меняется, следовательно ссылки на эти страницы могут потеряться.
Спасибо.

 

Ответить

RAN

Дата: Среда, 06.02.2013, 10:17 |
Сообщение № 2

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

Записать рекордером макрос поиска, повесить его на даблклик, и будет щасте… biggrin

PS Искать не номер страницы, а пункт оглавления.


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RANСреда, 06.02.2013, 10:18

 

Ответить

yuka

Дата: Среда, 06.02.2013, 10:47 |
Сообщение № 3

Группа: Пользователи

Ранг: Участник

Сообщений: 94


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Цитата (RAN)

PS Искать не номер страницы, а пункт оглавления.

У меня и есть пункты оглавления на гиперссылках. Но я вывожу все в .pdf. Поэтому проще запомнить номера страниц и в файле pdf вводить уже саму страницу, а не переходить по ссылке.

 

Ответить

AlexM

Дата: Среда, 06.02.2013, 11:13 |
Сообщение № 4

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4257


Репутация:

1046

±

Замечаний:
0% ±


Excel 2003

Посмотрите тему «без помощи колонтитула»
Возможно вам такое решение подойдет.
Макрос проставил номера страниц в определенных ячейках относительно разметки листа перед печатью.
А дальше эти номера как-то (макросом) использовать в оглавлении.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.

 

Ответить

RAN

Дата: Среда, 06.02.2013, 12:02 |
Сообщение № 5

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

Ниченепонимаю. dry
Т.е вывести все в ПДФ, а затем их Excel говорить ридеру, какую страницу найти? surprised


Быть или не быть, вот в чем загвоздка!

 

Ответить

yuka

Дата: Среда, 06.02.2013, 13:10 |
Сообщение № 6

Группа: Пользователи

Ранг: Участник

Сообщений: 94


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Цитата (AlexM)

Посмотрите тему «без помощи колонтитула»

AlexM, классный макрос! Очень нужный. Возник вопрос… Что это за строчка, что она означает?
[vba]

Код

Ctp = ActiveSheet.HPageBreaks(i).Location.Row ‘номер первого ряда листа i

[/vba]
[Можно ли номер поставить внизу страницы, а не наверху?]
—>не буду сама себя цитировать… Как выяснилось мне это не к чему. Для наглядности достаточно колонтитулов. А номер в ячейке нужен только для оглавления.

RAN, в Adobe Reader Pro есть функция конвертирования Excel в .pdf. Если в исходнике есть ссылки на ячейки книги, то при конвертации они сохраняются. Фактически создается оглавление с ссылками. Но моим пользователям мало этих ссылок, им нужны номера страниц, чтобы в самом файле .pdf переходить не по ссылке, а вводить напрямую номер страницы. [Возможно, такое желание возникло из-за того, что оглавление достаточно большое].

Сообщение отредактировал yukaСреда, 06.02.2013, 13:35

 

Ответить

Michael_S

Дата: Среда, 06.02.2013, 13:18 |
Сообщение № 7

Группа: Друзья

Ранг: Старожил

Сообщений: 2012


Репутация:

373

±

Замечаний:
0% ±


Excel2016

Оглавления с ссылками и страницами хорошо делает Word.
А уже из него в .pdf

Сообщение отредактировал Michael_SСреда, 06.02.2013, 13:18

 

Ответить

RAN

Дата: Среда, 06.02.2013, 13:19 |
Сообщение № 8

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

Опять ниченепонимаю.
Сохранил в ПДФ, ввел номер страницы — перешел. Никаких ссылок не делал.


Быть или не быть, вот в чем загвоздка!

 

Ответить

Michael_S

Дата: Среда, 06.02.2013, 13:21 |
Сообщение № 9

Группа: Друзья

Ранг: Старожил

Сообщений: 2012


Репутация:

373

±

Замечаний:
0% ±


Excel2016

RAN, ну так знать, какой № вводить… а это можно узнать из оглавления.

 

Ответить

yuka

Дата: Среда, 06.02.2013, 13:28 |
Сообщение № 10

Группа: Пользователи

Ранг: Участник

Сообщений: 94


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Цитата (Michael_S)

Оглавления с ссылками и страницами хорошо делает Word.
А уже из него в .pdf

Никогда не пробовала… но слышала… Это тогда надо весь документ засовывать в Word?

 

Ответить

Michael_S

Дата: Среда, 06.02.2013, 13:35 |
Сообщение № 11

Группа: Друзья

Ранг: Старожил

Сообщений: 2012


Репутация:

373

±

Замечаний:
0% ±


Excel2016

Надо посмотреть на документ… Может проще макрос создать, чем документ в ворд перевести.

 

Ответить

yuka

Дата: Среда, 06.02.2013, 13:56 |
Сообщение № 12

Группа: Пользователи

Ранг: Участник

Сообщений: 94


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

файл весит около 3 Мб, поэтому вот:
файл
Страницы выведены, теперь как-то заголовки надо привязать к страницами…)) Я уже почти отказалась от этой идеи….

 

Ответить

AlexM

Дата: Среда, 06.02.2013, 14:13 |
Сообщение № 13

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4257


Репутация:

1046

±

Замечаний:
0% ±


Excel 2003

Цитата (yuka)

Что это за строчка, что она означает?

В комментарии написано что она обозначает.
cpt — номер первой строки на листе после разметки
в строке
[vba]

Код

Cells(Ctp+1, 6) = i + 1

[/vba]
устанавливается второй ряд после разметки.
Вам видно надо над разметкой поставить номер страницы
[vba][/vba]
Кажется так. Не проверял. Тороплюсь.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.

 

Ответить

yuka

Дата: Среда, 06.02.2013, 14:18 |
Сообщение № 14

Группа: Пользователи

Ранг: Участник

Сообщений: 94


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Цитата (AlexM)

устанавливается второй ряд после разметки.
Вам видно надо над разметкой поставить номер страницы

Спасибо за разъяснение! Меня смутили «ряды»))) Попривыкла к строкам….)))

 

Ответить

AlexM

Дата: Среда, 06.02.2013, 17:46 |
Сообщение № 15

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4257


Репутация:

1046

±

Замечаний:
0% ±


Excel 2003

У нас* СТРОКА у них* ROW (ряд)
У нас СТОЛБЕЦ у них COLUMN (колонка)
Стараюсь называть правильно в Экселе СТРОКА и СТОЛБЕЦ, а в VBA Ряд и Колонка
* у нас — РУ, у них — EN
smile



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.

 

Ответить

shanemac51

Дата: Среда, 06.02.2013, 20:11 |
Сообщение № 16

Группа: Проверенные

Ранг: Новичок

Сообщений: 33


Репутация:

4

±

Замечаний:
0% ±


Цитата

Есть книга, в ней огромное количество строк.

обязателен ли эксель — ведь здесь скорее просмотр, чем корректировка
почему не НТМ с якорными закладками

НТМ можно уплотнить в chm

Сообщение отредактировал shanemac51Среда, 06.02.2013, 20:12

 

Ответить

yuka

Дата: Пятница, 08.02.2013, 09:30 |
Сообщение № 17

Группа: Пользователи

Ранг: Участник

Сообщений: 94


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Цитата (shanemac51)

обязателен ли эксель — ведь здесь скорее просмотр, чем корректировка
почему не НТМ с якорными закладками

Честно говоря я еще не в курсе как делать HTM. Это бы осилить…

AlexM, а как прописать в макросе от текущей строки до разделителя страницы? У меня же заголовки находятся в разных строках и столбцах… Т.е. надо вычислить начало и конец страницы…. Выше было мое сообщение с ссылкой на файл с народа. Если что непонятно, то лучше глянуть файл. Спасибо за ответы!

 

Ответить

AlexM

Дата: Пятница, 08.02.2013, 09:49 |
Сообщение № 18

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4257


Репутация:

1046

±

Замечаний:
0% ±


Excel 2003

3Мб очень много.
Сделайте файл примерно на 3-4 страницы (до 100Кб) и прикрепите к своему сообщению, нажав кнопочку «Выберите файл».
Укажите в каком столбце нужны номера страниц.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.

 

Ответить

yuka

Дата: Пятница, 08.02.2013, 10:17 |
Сообщение № 19

Группа: Пользователи

Ранг: Участник

Сообщений: 94


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

ясно…)))
Макрос на создания оглавления там есть (cont). Не стала создавать, экономлю место))

К сообщению приложен файл:

new_test.xls
(50.5 Kb)

 

Ответить

AlexM

Дата: Пятница, 08.02.2013, 11:06 |
Сообщение № 20

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4257


Репутация:

1046

±

Замечаний:
0% ±


Excel 2003

См. файл.

К сообщению приложен файл:

9515359.xls
(58.5 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.

 

Ответить

begemot
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 27.02.2004 (Пт) 12:21

Как определить номер страницы в Excel?

Подскажите плиз. как можно определить в Excel по заданной ячейке номер страницы при печати на текущий принтер?

Заранее СПАСИБО!


Fuzzy
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 03.12.2002 (Вт) 12:33

Сообщение Fuzzy » 27.02.2004 (Пт) 18:20

Используй свойства листа VPageBreaks и HPageBreaks


begemot
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 27.02.2004 (Пт) 12:21

Сообщение begemot » 27.02.2004 (Пт) 18:52

Если можно подробнее.

Worksheets(1).HPageBreaks.Count — число разделителей по всему листу, а

мне нужно выцеплять промежуточные строки.

Пытался переносить весь диапазон до заданной ячейки на другой лист, но нумерация немного поплыла, хотя все параметры страницы и форматы данных выставляю те же, да работает медленно (всего около 10000 строк).

Может быть есть какие-нибудь другие варианты?


Fuzzy
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 03.12.2002 (Вт) 12:33

Сообщение Fuzzy » 27.02.2004 (Пт) 18:54

HPageBreaks — это коллекция, содержащая адреса ячеек, где происходят горизонтальные разрывы. Тебе надо её просматривать и искать, между какими разрывами попадает твоя нужная ячейка.


begemot
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 27.02.2004 (Пт) 12:21

Сообщение begemot » 27.02.2004 (Пт) 20:02

спасибо, разобрался!



Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

ГЛАВНАЯ

ТРЕНИНГИ

   Быстрый старт
   Расширенный Excel
   Мастер Формул
   Прогнозирование
   Визуализация
   Макросы на VBA

КНИГИ

   Готовые решения
   Мастер Формул
   Скульптор данных

ВИДЕОУРОКИ

ПРИЕМЫ

   Бизнес-анализ
   Выпадающие списки
   Даты и время
   Диаграммы
   Диапазоны
   Дубликаты
   Защита данных
   Интернет, email
   Книги, листы
   Макросы
   Сводные таблицы
   Текст
   Форматирование
   Функции
   Всякое
PLEX

   Коротко
   Подробно
   Версии
   Вопрос-Ответ
   Скачать
   Купить

ПРОЕКТЫ

ОНЛАЙН-КУРСЫ

ФОРУМ

   Excel
   Работа
   PLEX

© Николай Павлов, Planetaexcel, 2006-2022
info@planetaexcel.ru


Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.

Техническая поддержка сайта

ООО «Планета Эксел»

ИНН 7735603520


ОГРН 1147746834949
        ИП Павлов Николай Владимирович
        ИНН 633015842586
        ОГРНИП 310633031600071 

Определить номер страницы с закладкой

Автор BoomZoom, 14 декабря 2015, 22:51

Здравствуйте. Скажите, пожалуйста, как сделать макрос, который бы выводил на монитор сообщение с номерами страниц, на которых есть закладки?

[вложение удалено администратором]



Администратор

  • Administrator
  • Сообщения: 2,252
  • Записан

Какие макросу смотреть закладки? Все или по каким-то признакам? Может по именам закладок?


Да, можно по именам закладок.



Администратор

  • Administrator
  • Сообщения: 2,252
  • Записан

Какое у закладки должно быть имя, чтобы макрос её учёл?


Закладка1, Закладка2 и т.д.



Администратор

  • Administrator
  • Сообщения: 2,252
  • Записан

То есть у закладок фиксированные имена? Эти имена тогда просто в код макроса вписать?


Можно так. А какие варианты еще могут быть?



Администратор

  • Administrator
  • Сообщения: 2,252
  • Записан

У закладок можно сделать одинаковый корень, но будет разный суффикс, например:
Закладка1, Закладка2 — одинаковый корень «Закладка» и разные суффиксы: 1, 2. Макрос может смотреть начало имени закладки.


Пусть будет так, как вы предлагаете.



Администратор

  • Administrator
  • Сообщения: 2,252
  • Записан

Этот макрос работает с закладками, у которых имя начинается словом «Закладка».

Sub Main()
    Dim docAct As Document, bkmark As Bookmark, strMsg As String
    ‘1. Vba-именование активного файла.
    Set docAct = ActiveDocument
    ‘2. Функционал.
    For Each bkmark In docAct.Bookmarks
        ‘ Если имя закладки начинается словом «Закладка».
        If InStr(bkmark.Name, «Закладка») = 1 Then
            strMsg = strMsg & bkmark.Range.Information(wdActiveEndAdjustedPageNumber) & vbCr
        End If
    Next
    ‘3. Сообщение.
    If strMsg = «» Then
        MsgBox «В файле нет искомых закладок.», vbInformation
    Else
        MsgBox «Закладки находятся на страницах:» & vbCr & strMsg, vbInformation
    End If
End Sub


Большое спасибо! Потестирую — отпишусь!


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


  • Форум по VBA, Excel и Word

  • Word

  • Макросы в Word

  • Определить номер страницы с закладкой

Понравилась статья? Поделить с друзьями:
  • Vba excel номер столбца активной ячейки
  • Vba excel номер последней ячейки
  • Vba excel номер последнего столбца
  • Vba excel номер недели по дате
  • Vba excel номер листа в книге