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

Вход

Регистрация

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

 

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

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир 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
Группа: Модераторы
Ранг: Экселист
Сообщений: 7014
Репутация: 1073 ±
Замечаний: 0% ±

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


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

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

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


"Черт возьми, Холмс! Но как??!!"
Ю-money 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
Поиск:

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