powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel. Управление разбиением на страницы.
17 сообщений из 17, страница 1 из 1
Excel. Управление разбиением на страницы.
    #33745157
radost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Расскажу ситуацию. Делаю отчет в Excel XP. На лист вывожу около 12000 строк. При разметке страниц получается, что разрыв первой страницы
нормально устанавливается, а дальше разрыв устанавливается на каждой строке, что очень удивительно. Ну да ладно. Решил самостоятельно устанавливать разрывы. В связи с этим два вопроса:
1) Как определить, что надо устанавливать разрыв?
2) Как устанвливать разрыв?
Наиболее важен первый вопрос.
...
Рейтинг: 0 / 0
Excel. Управление разбиением на страницы.
    #33745289
svetolux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сначала заходишь ФАЙЛ->Параметры страницы (обязательно). Устанавливаешь (если надо). Потом ОК. На листе появятся пунктирные линии, указывающие границы листа. Далее Вид->Разметка страницы и мышкой переносишь жирные линии на пунктирные. Жирные линии и будут полями страницы.
...
Рейтинг: 0 / 0
Excel. Управление разбиением на страницы.
    #33745497
radost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уточню. Я динамически добавляю строки (циклическая последовательность Copy, Insert, PasteSpecial), а потом заполняю их данными. Соответственно заранее я не могу ничего ставить, так как лист практически пустой. Соответственно как программно добавляются строки, так программно необходимо устанавливать разрывы (есть необходимость, чтобы некоторые ячейки не разрывались на страницы, а переносились).
Понятно что решением является подсчет сумм высот выведенных строк, и контроль на превышение этой суммой некоторого значения. Но тут возникает другая проблема. Что возвращает свойство RowHeight - пиксели, миллиметры, или другие какие-то единицы. И где взять контрольное значение? Есть высота страницы 297 см, минус высота верхнего поля, минус высота нижнего поля.
Вот такой геморой.
...
Рейтинг: 0 / 0
Excel. Управление разбиением на страницы.
    #33746053
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача определенных параметров для xls-файла
считай в пикселях
конечно это немного не удобно но с переводом в см. ещё хуже
...
Рейтинг: 0 / 0
Excel. Управление разбиением на страницы.
    #33746217
radost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так же пошел. А почему 700? Я опытным путем определил 720. Пытаюсь разобраться в документации. Height и RowHeight возвращают значение в точках, а что они понимают под точкой пока не знаю. Спасибо.
...
Рейтинг: 0 / 0
Excel. Управление разбиением на страницы.
    #33746284
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
radostТак же пошел. А почему 700? Я опытным путем определил 720. Пытаюсь разобраться в документации. Height и RowHeight возвращают значение в точках, а что они понимают под точкой пока не знаю. Спасибо.
700 на всякий случай
а вообще у меня были сквозные строки они занимали некоторое место поэтому и 700
...
Рейтинг: 0 / 0
Excel. Управление разбиением на страницы.
    #33746517
radost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Высоту сквозных строк я учитываю при подсчете. Появилась проблема. Помимо моих разрывов присутствуют и автоматические. Как бы от них избавиться?
...
Рейтинг: 0 / 0
Excel. Управление разбиением на страницы.
    #33746576
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
    For x =  1  To ActiveWindow.ActiveSheet.HPageBreaks.Count
        ActiveWindow.ActiveSheet.HPageBreaks( 1 ).Delete
    Next x
...
Рейтинг: 0 / 0
Excel. Управление разбиением на страницы.
    #33746666
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
radostПри разметке страниц получается, что разрыв первой страницы
нормально устанавливается, а дальше разрыв устанавливается на каждой строке, что очень удивительно.У тебя "Сквозных строк" слишком много. Вот те строки которые надо печатать на верху каждого листа. Скорее всего, ты определил их в шаблоне, а потом когда вставлял строки для данных у тебя этот регион растянулся. Поправь и все проблемы со страницами исчезнут.
...
Рейтинг: 0 / 0
Excel. Управление разбиением на страницы.
    #33747216
radost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl radostПри разметке страниц получается, что разрыв первой страницы
нормально устанавливается, а дальше разрыв устанавливается на каждой строке, что очень удивительно.У тебя "Сквозных строк" слишком много. Вот те строки которые надо печатать на верху каждого листа. Скорее всего, ты определил их в шаблоне, а потом когда вставлял строки для данных у тебя этот регион растянулся. Поправь и все проблемы со страницами исчезнут.
Совершенно верно. Я это исправил. Но вручную устанавливать разрывы необходимо, так как есть ячейки, которые объединяют несколько строк, а эти ячейки не должны разрываться. Мало того нужно выводить итоги по некоторым колонкам страницы. Прикольно, в общем.
...
Рейтинг: 0 / 0
Excel. Управление разбиением на страницы.
    #33756021
radost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkodor
Код: plaintext
1.
2.
    For x =  1  To ActiveWindow.ActiveSheet.HPageBreaks.Count
        ActiveWindow.ActiveSheet.HPageBreaks( 1 ).Delete
    Next x


Пробовал. При выполенении макроса возникает ошибка. Поразбирался. Оказалось, что нормально удаляются только те разрывы, которые были вставлены вручную, а ошибка вылетает на автоматических разрывах. В итоге поправил код. Вставляю разрывы до автоматических, тогда автоматические разрывы перемещаются на место ручных.
Интересно другое. Если установить параметры страницы "размещать не более чем на 1 страницу по высоте", то коллекция HPageBreaks становиться пустой, по крайней мере HPageBreaks.Count = 0. Будет время, поковыряюсь.
...
Рейтинг: 0 / 0
Excel. Управление разбиением на страницы.
    #33767528
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот тут штука, может по теме
...
Рейтинг: 0 / 0
Excel. Управление разбиением на страницы.
    #33898053
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
Sort the data before operate the macro.

Sub Pagebreak()

ActiveSheet.ResetAllPageBreaks  'Clear existing page breaks

Dim Rng As Range    'number of rows
Dim lngCOL As Long   'column number to use - user input
Dim lngROW As Long    'row count

On Error GoTo EndMacro
Application.ScreenUpdating = False

lngCOL = InputBox("Enter the column NUMBER to use", "Column page break")

Set Rng = ActiveSheet.UsedRange.Rows

For lngROW =  3  To Rng.Rows.Count  'start by comparing row 2 and 3
  If Cells(lngROW, lngCOL).Formula <> Cells(lngROW -  1 , lngCOL).Formula Then
      ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Cells(lngROW, lngCOL)
      Application.StatusBar = "Row: " + Format(lngROW)
  End If
Next lngROW
Application.StatusBar = "Done"

EndMacro:
Set Rng = Nothing
Application.ScreenUpdating = True

End Sub

...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Excel. Управление разбиением на страницы.
    #38305722
Me_and_me_again
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkodor, та же фигня. разрывы, проставленные автоматом не удаляются через delete, хотя в коллекции эксель их видит.

кто знает как их удалить или мож где булево свойство есть, чтобы автоматом вообще не проставлять? Второй вариант наиболее предпочтителен, потому что по любому приходится и горизонтальные и вертикальные разрывы проставлять ручками (программно)
...
Рейтинг: 0 / 0
Excel. Управление разбиением на страницы.
    #38306087
Me_and_me_again
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
догнал, что автоматические разрывы можно переместить, если перейти в постраничный режим просмотра. а как в него перейти?
Запись макроса дала следующее:
ActiveWindow.View = xlPageBreakPreview

какое числовое значение соответствует xlPageBreakPreview?
и как обратиться к ActiveWindow допустим из акса?
...
Рейтинг: 0 / 0
Excel. Управление разбиением на страницы.
    #38306204
Me_and_me_again
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
с xlPageBreakPreview оказалось просто: 1 - обычный режим, 2 - постраничный
а так работает из акса:
ex.ActiveWindow.View = 2
...
Рейтинг: 0 / 0
Excel. Управление разбиением на страницы.
    #38306239
Me_and_me_again
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Последняя пунктирная через Set почему-то не сдвигается. построитель макрософ генерит другой код
ActiveSheet.VPageBreaks(2).DragOff Direction:=xlToRight, RegionIndex:=1
то бишь смещает тупо n позиций. мне подходит, хотя это очень нехорошо

еще одна фишка: крайняя граница области печати почему-то выбивается из коллекции, даже получить столбец разрыва не получается. постоянно лезет ошибка "Subscript out of range", хотя ActiveSheet.VPageBreaks.Count последнюю границу в коллекцию включает

ps: короч, с управлением печатью какая-то неведомая фигня происходит
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel. Управление разбиением на страницы.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]