Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
1302 / 404 / 22
Регистрация: 21.10.2011
Сообщений: 1,285

Как узнать начало страницы без использования принудительных разрывов страниц

11.09.2012, 21:08. Показов 2040. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как узнать начало страницы без использования принудительных разрывов страниц и без создания области печати, если ещё лист пустой?
Например, у меня начало второй страницы на 51 строке, но там ещё нет данных и соответственно нет автоматического разрыва страницы.

Какое-нибудь специальное средство для этого есть?

Это нужно, чтобы вставлять данные на вторую страницу.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.09.2012, 21:08
Ответы с готовыми решениями:

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

Как узнать имя проекта dll без использования GetModuleFileName?
Всем привет. Есть еще варианты узнать имя проекта (или самой dll) без использования GetModuleFileName? Ищу второй вариант на...

Контент страниц без перегрузки страницы, как это работает?
Привет комрады, помогите пожалуйста осветить данный момент: Есть такие сайты, типа vk или youtube, где кликая по ссылкам можно увидеть (...

7
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
11.09.2012, 21:59
Можно принудительно заполнить ячейку ниже UsedRange и определить начало 2-й страницы:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub bb()
Dim hpb As HPageBreak, i&, c As Range
On Error Resume Next
With ActiveSheet
    Set c = Cells(.UsedRange.Row + .UsedRange.Rows.Count + 100, 1)
    c = 0
    Set hpb = .HPageBreaks(1)
End With
If Err Then
    MsgBox "Надо запонять ячейку еще дальше!"
Else
    MsgBox hpb.Location.Address & " - 1-я яч. 2-го листа"
End If
c.ClearContents
End Sub
2
1302 / 404 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
11.09.2012, 22:03  [ТС]
Т.е. смысл сводится к тому, что сначала помещаем что-то на вторую страницу, а потому уже определяем начало второй страницы.

Тогда такая идея пришла: сразу поместить в последнюю строку листа текст и будут получены все автоматические разрывы страниц.
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
11.09.2012, 22:16
Ну да Не обязательно именно на вторую, можно на 3-ю, 10-ю и т.д.
Просто пока нет ничего дальше 1-й страницы, коллекция HPageBreaks пустая.
Теоретически можно определить высоту поля печати (размер бумаги - колонтитулы) и суммировать высоты строк, пока сумма не превысит высоту поля печати, но... зачем делать за Excel его работу?
Проще провести такую "разведку боем"
0
1302 / 404 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
11.09.2012, 22:21  [ТС]
Казанский, разметка страницы связана с принтером. Поэтому мне кажется (я плохо представляю ситуацию), что не получится достоверно подсчитать по размеру бумаги.
1
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
11.09.2012, 22:23
Цитата Сообщение от Busine2012 Посмотреть сообщение
Тогда такая идея пришла: сразу поместить в последнюю строку листа текст и будут получены все автоматические разрывы страниц.
Рисковано. А если это 2007?
Цитата Сообщение от F1 - Worksheets.HPageBreaks Property
Remarks
There is a limit of 1026 horizontal page breaks per sheet.
Добавлено через 54 секунды
Цитата Сообщение от Busine2012 Посмотреть сообщение
Поэтому мне кажется (я плохо представляю ситуацию), что не получится достоверно подсчитать по размеру бумаги.
Мне тоже так кажется.
1
1302 / 404 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
11.09.2012, 22:42  [ТС]
Казанский, вот это работает (в последней строке листа есть текст; Excel 2007/2010):
Visual Basic
1
2
3
4
5
6
7
Sub Procedure_1()
 
    Debug.Print ActiveSheet.HPageBreaks.Count
 
    Debug.Print ActiveSheet.HPageBreaks(20971).Location.Address
 
End Sub
Примечание, чтобы увидеть результат работы кода: View - Immediate Window.


Цитата Сообщение от Казанский Посмотреть сообщение
There is a limit of 1026 horizontal page breaks per sheet.
может имеется ввиду страница, а не рабочий лист, или вы и имели ввиду страницу?
2
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
11.09.2012, 22:50
Имеются в виду разрывы, установленные вручную: http://support.microsoft.com/kb/284916

О5 косяк в справке
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.09.2012, 22:50
Помогаю со студенческими работами здесь

Как на Java сохранить в переменную код хтмл и вап страницы без использования браузера
Привет всем. Я в JAVA не силен. И плюс самоучку так что не критикуйте если комуто покажется вопрос глупым. 1. Как с помощью JAVA...

Подсчет разрывов страниц Excel
Добрый день! Столкнулся с проблемой , после ручного добавления разрыва страницы , он судя по всему не попадает в коллекцию HPageBreaks...

Как узнать адрес текущей страницы без адресной строки
При оплате игр Origin открывает окно собственного браузера без адресной строки и возможности нажать правую кнопку мыши. Какими способами я...

Как без использования js, но с исп. SASS и BS3 динамически менять цветовую схему страницы нажатием toggle на сайте
Кто-то знает как сделать возможность смены цветовой схемы страницы (выбор один из двух вариантов цвета для некоторых элементов страницы,...

Ошибка при поиске разрывов страниц на листе
Здравствуйте. Передо мной стоит задача: На листе есть несколько таблиц, разделенных друг от друга разрывами страниц(установленных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru