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

Вход

Регистрация

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

 

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

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Функция для обновления номера страницы в ячейке (Макросы/Sub)
Функция для обновления номера страницы в ячейке
Awhite Дата: Понедельник, 06.07.2020, 10:27 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый день, уважаемые дамы и господа.

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

Нашёл код:
[vba]
Код

Function page(x As Range) As Long
Dim nHorBr As Long, nVerBr As Long, iHor As Long, iVer As Long
Application.Volatile 'пересчитывать при пересчете листа (в т.ч. по F9)
With x.Parent 'лист
nHorBr = .HPageBreaks.Count 'число гориз. разрывов, число страниц по вертикали nHorBr+1
nVerBr = .VPageBreaks.Count 'число верт. разрывов, число страниц по горизонтали nVerBr+1

'************************ ! Внимание ! **********************************************
'В Excel-2000 обнаружен глюк: если число вертикальных разрывов >3,
'то свойство .VPageBreaks.Count возвращает число на 1 больше, чем должно быть.
'Проверьте, требуется ли на вашей системе коррекция числа вертикальных разрывов.
'Для отключения коррекции закомментируйте следующую строку.
If nVerBr > 3 Then nVerBr = nVerBr - 1

For iHor = 1 To nHorBr
If x.Row < x.Parent.HPageBreaks(iHor).Location.Row Then Exit For
Next
For iVer = 1 To nVerBr
If x.Column < x.Parent.VPageBreaks(iVer).Location.Column Then Exit For
Next
If .PageSetup.Order = xlOverThenDown Then
page = (iHor - 1) * (nVerBr + 1) + iVer
Else
page = (iVer - 1) * (nHorBr + 1) + iHor
End If
End With
End Function
[/vba]
Но,
в качестве аргумента функции, указывется адрес ячейки, которая остаётся
на первой странице, таким образом функция показывает только № первой
страницы.

Как можно сделать динамически обновляемый номер страницы в ячейке, которая находится в сквозных строках?
К сообщению приложен файл: 6667828.xlsm(30.4 Kb)


Сообщение отредактировал Awhite - Понедельник, 06.07.2020, 11:22
 
Ответить
СообщениеДобрый день, уважаемые дамы и господа.

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

Нашёл код:
[vba]
Код

Function page(x As Range) As Long
Dim nHorBr As Long, nVerBr As Long, iHor As Long, iVer As Long
Application.Volatile 'пересчитывать при пересчете листа (в т.ч. по F9)
With x.Parent 'лист
nHorBr = .HPageBreaks.Count 'число гориз. разрывов, число страниц по вертикали nHorBr+1
nVerBr = .VPageBreaks.Count 'число верт. разрывов, число страниц по горизонтали nVerBr+1

'************************ ! Внимание ! **********************************************
'В Excel-2000 обнаружен глюк: если число вертикальных разрывов >3,
'то свойство .VPageBreaks.Count возвращает число на 1 больше, чем должно быть.
'Проверьте, требуется ли на вашей системе коррекция числа вертикальных разрывов.
'Для отключения коррекции закомментируйте следующую строку.
If nVerBr > 3 Then nVerBr = nVerBr - 1

For iHor = 1 To nHorBr
If x.Row < x.Parent.HPageBreaks(iHor).Location.Row Then Exit For
Next
For iVer = 1 To nVerBr
If x.Column < x.Parent.VPageBreaks(iVer).Location.Column Then Exit For
Next
If .PageSetup.Order = xlOverThenDown Then
page = (iHor - 1) * (nVerBr + 1) + iVer
Else
page = (iVer - 1) * (nHorBr + 1) + iHor
End If
End With
End Function
[/vba]
Но,
в качестве аргумента функции, указывется адрес ячейки, которая остаётся
на первой странице, таким образом функция показывает только № первой
страницы.

Как можно сделать динамически обновляемый номер страницы в ячейке, которая находится в сквозных строках?

Автор - Awhite
Дата добавления - 06.07.2020 в 10:27
китин Дата: Понедельник, 06.07.2020, 10:48 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 6313
Репутация: 968 ±
Замечаний: 0% ±

Excel 2007;Excel 2010
Awhite, - Прочитайте Правила форума
- Оформите код тегами (в режиме правки поста выделите код и нажмите кнопку #, пояснялка здесь)


Не судите строго:я пытаюсь научиться
ЯД 41001877306852/WM R249698041931; Z239672726538
 
Ответить
СообщениеAwhite, - Прочитайте Правила форума
- Оформите код тегами (в режиме правки поста выделите код и нажмите кнопку #, пояснялка здесь)

Автор - китин
Дата добавления - 06.07.2020 в 10:48
Pelena Дата: Понедельник, 06.07.2020, 18:47 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 16763
Репутация: 3619 ±
Замечаний: ±

Excel 2010, 2016 & Mac Excel
Awhite, боюсь, что такое невозможно, ведь по сути сквозные строки - это одни и те же ячейки, которые просто повторяются на каждом листе


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеAwhite, боюсь, что такое невозможно, ведь по сути сквозные строки - это одни и те же ячейки, которые просто повторяются на каждом листе

Автор - Pelena
Дата добавления - 06.07.2020 в 18:47
Awhite Дата: Вторник, 07.07.2020, 11:48 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Awhite, боюсь, что такое невозможно, ведь по сути сквозные строки - это одни и те же ячейки, которые просто повторяются на каждом листе

Здравствуйте, возможно ли сделать какую-то динамическую ячейку или ссылку?
Или может есть другой способ как сделать нумерацию страницы в ячейке?
 
Ответить
Сообщение
Awhite, боюсь, что такое невозможно, ведь по сути сквозные строки - это одни и те же ячейки, которые просто повторяются на каждом листе

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

Автор - Awhite
Дата добавления - 07.07.2020 в 11:48
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Функция для обновления номера страницы в ячейке (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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