|
Excel. Управление разбиением на страницы.
|
|||
---|---|---|---|
#18+
Расскажу ситуацию. Делаю отчет в Excel XP. На лист вывожу около 12000 строк. При разметке страниц получается, что разрыв первой страницы нормально устанавливается, а дальше разрыв устанавливается на каждой строке, что очень удивительно. Ну да ладно. Решил самостоятельно устанавливать разрывы. В связи с этим два вопроса: 1) Как определить, что надо устанавливать разрыв? 2) Как устанвливать разрыв? Наиболее важен первый вопрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2006, 13:05 |
|
Excel. Управление разбиением на страницы.
|
|||
---|---|---|---|
#18+
Сначала заходишь ФАЙЛ->Параметры страницы (обязательно). Устанавливаешь (если надо). Потом ОК. На листе появятся пунктирные линии, указывающие границы листа. Далее Вид->Разметка страницы и мышкой переносишь жирные линии на пунктирные. Жирные линии и будут полями страницы. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2006, 13:32 |
|
Excel. Управление разбиением на страницы.
|
|||
---|---|---|---|
#18+
Уточню. Я динамически добавляю строки (циклическая последовательность Copy, Insert, PasteSpecial), а потом заполняю их данными. Соответственно заранее я не могу ничего ставить, так как лист практически пустой. Соответственно как программно добавляются строки, так программно необходимо устанавливать разрывы (есть необходимость, чтобы некоторые ячейки не разрывались на страницы, а переносились). Понятно что решением является подсчет сумм высот выведенных строк, и контроль на превышение этой суммой некоторого значения. Но тут возникает другая проблема. Что возвращает свойство RowHeight - пиксели, миллиметры, или другие какие-то единицы. И где взять контрольное значение? Есть высота страницы 297 см, минус высота верхнего поля, минус высота нижнего поля. Вот такой геморой. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2006, 14:11 |
|
Excel. Управление разбиением на страницы.
|
|||
---|---|---|---|
#18+
Задача определенных параметров для xls-файла считай в пикселях конечно это немного не удобно но с переводом в см. ещё хуже ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2006, 16:00 |
|
Excel. Управление разбиением на страницы.
|
|||
---|---|---|---|
#18+
Так же пошел. А почему 700? Я опытным путем определил 720. Пытаюсь разобраться в документации. Height и RowHeight возвращают значение в точках, а что они понимают под точкой пока не знаю. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2006, 16:37 |
|
Excel. Управление разбиением на страницы.
|
|||
---|---|---|---|
#18+
radostТак же пошел. А почему 700? Я опытным путем определил 720. Пытаюсь разобраться в документации. Height и RowHeight возвращают значение в точках, а что они понимают под точкой пока не знаю. Спасибо. 700 на всякий случай а вообще у меня были сквозные строки они занимали некоторое место поэтому и 700 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2006, 16:55 |
|
Excel. Управление разбиением на страницы.
|
|||
---|---|---|---|
#18+
Высоту сквозных строк я учитываю при подсчете. Появилась проблема. Помимо моих разрывов присутствуют и автоматические. Как бы от них избавиться? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2006, 17:51 |
|
Excel. Управление разбиением на страницы.
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2006, 18:17 |
|
Excel. Управление разбиением на страницы.
|
|||
---|---|---|---|
#18+
radostПри разметке страниц получается, что разрыв первой страницы нормально устанавливается, а дальше разрыв устанавливается на каждой строке, что очень удивительно.У тебя "Сквозных строк" слишком много. Вот те строки которые надо печатать на верху каждого листа. Скорее всего, ты определил их в шаблоне, а потом когда вставлял строки для данных у тебя этот регион растянулся. Поправь и все проблемы со страницами исчезнут. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2006, 18:57 |
|
Excel. Управление разбиением на страницы.
|
|||
---|---|---|---|
#18+
White Owl radostПри разметке страниц получается, что разрыв первой страницы нормально устанавливается, а дальше разрыв устанавливается на каждой строке, что очень удивительно.У тебя "Сквозных строк" слишком много. Вот те строки которые надо печатать на верху каждого листа. Скорее всего, ты определил их в шаблоне, а потом когда вставлял строки для данных у тебя этот регион растянулся. Поправь и все проблемы со страницами исчезнут. Совершенно верно. Я это исправил. Но вручную устанавливать разрывы необходимо, так как есть ячейки, которые объединяют несколько строк, а эти ячейки не должны разрываться. Мало того нужно выводить итоги по некоторым колонкам страницы. Прикольно, в общем. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2006, 08:21 |
|
Excel. Управление разбиением на страницы.
|
|||
---|---|---|---|
#18+
vkodor Код: plaintext 1. 2.
Пробовал. При выполенении макроса возникает ошибка. Поразбирался. Оказалось, что нормально удаляются только те разрывы, которые были вставлены вручную, а ошибка вылетает на автоматических разрывах. В итоге поправил код. Вставляю разрывы до автоматических, тогда автоматические разрывы перемещаются на место ручных. Интересно другое. Если установить параметры страницы "размещать не более чем на 1 страницу по высоте", то коллекция HPageBreaks становиться пустой, по крайней мере HPageBreaks.Count = 0. Будет время, поковыряюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2006, 16:23 |
|
Excel. Управление разбиением на страницы.
|
|||
---|---|---|---|
#18+
вот тут штука, может по теме ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2006, 00:39 |
|
Excel. Управление разбиением на страницы.
|
|||
---|---|---|---|
#18+
Add page breaks to sorted data using VBA in Microsoft Excel Код: plaintext 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2006, 17:01 |
|
Excel. Управление разбиением на страницы.
|
|||
---|---|---|---|
#18+
vkodor, та же фигня. разрывы, проставленные автоматом не удаляются через delete, хотя в коллекции эксель их видит. кто знает как их удалить или мож где булево свойство есть, чтобы автоматом вообще не проставлять? Второй вариант наиболее предпочтителен, потому что по любому приходится и горизонтальные и вертикальные разрывы проставлять ручками (программно) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2013, 09:43 |
|
Excel. Управление разбиением на страницы.
|
|||
---|---|---|---|
#18+
догнал, что автоматические разрывы можно переместить, если перейти в постраничный режим просмотра. а как в него перейти? Запись макроса дала следующее: ActiveWindow.View = xlPageBreakPreview какое числовое значение соответствует xlPageBreakPreview? и как обратиться к ActiveWindow допустим из акса? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2013, 12:39 |
|
Excel. Управление разбиением на страницы.
|
|||
---|---|---|---|
#18+
с xlPageBreakPreview оказалось просто: 1 - обычный режим, 2 - постраничный а так работает из акса: ex.ActiveWindow.View = 2 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2013, 13:48 |
|
Excel. Управление разбиением на страницы.
|
|||
---|---|---|---|
#18+
Последняя пунктирная через Set почему-то не сдвигается. построитель макрософ генерит другой код ActiveSheet.VPageBreaks(2).DragOff Direction:=xlToRight, RegionIndex:=1 то бишь смещает тупо n позиций. мне подходит, хотя это очень нехорошо еще одна фишка: крайняя граница области печати почему-то выбивается из коллекции, даже получить столбец разрыва не получается. постоянно лезет ошибка "Subscript out of range", хотя ActiveSheet.VPageBreaks.Count последнюю границу в коллекцию включает ps: короч, с управлением печатью какая-то неведомая фигня происходит ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2013, 14:02 |
|
|
start [/forum/topic.php?fid=61&msg=33898053&tid=2174721]: |
0ms |
get settings: |
13ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 127ms |
0 / 0 |