Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel. Управление разбиением на страницы. / 17 сообщений из 17, страница 1 из 1
23.05.2006, 13:05
    #33745157
radost
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Управление разбиением на страницы.
Расскажу ситуацию. Делаю отчет в Excel XP. На лист вывожу около 12000 строк. При разметке страниц получается, что разрыв первой страницы
нормально устанавливается, а дальше разрыв устанавливается на каждой строке, что очень удивительно. Ну да ладно. Решил самостоятельно устанавливать разрывы. В связи с этим два вопроса:
1) Как определить, что надо устанавливать разрыв?
2) Как устанвливать разрыв?
Наиболее важен первый вопрос.
...
Рейтинг: 0 / 0
23.05.2006, 13:32
    #33745289
svetolux
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Управление разбиением на страницы.
Сначала заходишь ФАЙЛ->Параметры страницы (обязательно). Устанавливаешь (если надо). Потом ОК. На листе появятся пунктирные линии, указывающие границы листа. Далее Вид->Разметка страницы и мышкой переносишь жирные линии на пунктирные. Жирные линии и будут полями страницы.
...
Рейтинг: 0 / 0
23.05.2006, 14:11
    #33745497
radost
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Управление разбиением на страницы.
Уточню. Я динамически добавляю строки (циклическая последовательность Copy, Insert, PasteSpecial), а потом заполняю их данными. Соответственно заранее я не могу ничего ставить, так как лист практически пустой. Соответственно как программно добавляются строки, так программно необходимо устанавливать разрывы (есть необходимость, чтобы некоторые ячейки не разрывались на страницы, а переносились).
Понятно что решением является подсчет сумм высот выведенных строк, и контроль на превышение этой суммой некоторого значения. Но тут возникает другая проблема. Что возвращает свойство RowHeight - пиксели, миллиметры, или другие какие-то единицы. И где взять контрольное значение? Есть высота страницы 297 см, минус высота верхнего поля, минус высота нижнего поля.
Вот такой геморой.
...
Рейтинг: 0 / 0
23.05.2006, 16:00
    #33746053
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Управление разбиением на страницы.
Задача определенных параметров для xls-файла
считай в пикселях
конечно это немного не удобно но с переводом в см. ещё хуже
...
Рейтинг: 0 / 0
23.05.2006, 16:37
    #33746217
radost
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Управление разбиением на страницы.
Так же пошел. А почему 700? Я опытным путем определил 720. Пытаюсь разобраться в документации. Height и RowHeight возвращают значение в точках, а что они понимают под точкой пока не знаю. Спасибо.
...
Рейтинг: 0 / 0
23.05.2006, 16:55
    #33746284
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Управление разбиением на страницы.
radostТак же пошел. А почему 700? Я опытным путем определил 720. Пытаюсь разобраться в документации. Height и RowHeight возвращают значение в точках, а что они понимают под точкой пока не знаю. Спасибо.
700 на всякий случай
а вообще у меня были сквозные строки они занимали некоторое место поэтому и 700
...
Рейтинг: 0 / 0
23.05.2006, 17:51
    #33746517
radost
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Управление разбиением на страницы.
Высоту сквозных строк я учитываю при подсчете. Появилась проблема. Помимо моих разрывов присутствуют и автоматические. Как бы от них избавиться?
...
Рейтинг: 0 / 0
23.05.2006, 18:17
    #33746576
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Управление разбиением на страницы.
Код: plaintext
1.
2.
    For x =  1  To ActiveWindow.ActiveSheet.HPageBreaks.Count
        ActiveWindow.ActiveSheet.HPageBreaks( 1 ).Delete
    Next x
...
Рейтинг: 0 / 0
23.05.2006, 18:57
    #33746666
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Управление разбиением на страницы.
radostПри разметке страниц получается, что разрыв первой страницы
нормально устанавливается, а дальше разрыв устанавливается на каждой строке, что очень удивительно.У тебя "Сквозных строк" слишком много. Вот те строки которые надо печатать на верху каждого листа. Скорее всего, ты определил их в шаблоне, а потом когда вставлял строки для данных у тебя этот регион растянулся. Поправь и все проблемы со страницами исчезнут.
...
Рейтинг: 0 / 0
24.05.2006, 08:21
    #33747216
radost
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Управление разбиением на страницы.
White Owl radostПри разметке страниц получается, что разрыв первой страницы
нормально устанавливается, а дальше разрыв устанавливается на каждой строке, что очень удивительно.У тебя "Сквозных строк" слишком много. Вот те строки которые надо печатать на верху каждого листа. Скорее всего, ты определил их в шаблоне, а потом когда вставлял строки для данных у тебя этот регион растянулся. Поправь и все проблемы со страницами исчезнут.
Совершенно верно. Я это исправил. Но вручную устанавливать разрывы необходимо, так как есть ячейки, которые объединяют несколько строк, а эти ячейки не должны разрываться. Мало того нужно выводить итоги по некоторым колонкам страницы. Прикольно, в общем.
...
Рейтинг: 0 / 0
27.05.2006, 16:23
    #33756021
radost
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Управление разбиением на страницы.
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
02.06.2006, 00:39
    #33767528
Ivan33
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Управление разбиением на страницы.
вот тут штука, может по теме
...
Рейтинг: 0 / 0
03.08.2006, 17:01
    #33898053
Ivan33
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Управление разбиением на страницы.
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
Период между сообщениями больше года.
21.06.2013, 09:43
    #38305722
Me_and_me_again
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Управление разбиением на страницы.
vkodor, та же фигня. разрывы, проставленные автоматом не удаляются через delete, хотя в коллекции эксель их видит.

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

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

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

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


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