powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Разрыв страницы в Excel
9 сообщений из 9, страница 1 из 1
Разрыв страницы в Excel
    #33046879
Фотография xax_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно вопрос и простой, но ответ пока не нашел. Как программно вставить в документ в начале 2-й, 3-й и т.д. страницы строку вида
123456 и т.д.?
...
Рейтинг: 0 / 0
Разрыв страницы в Excel
    #33046901
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ActiveSheet.DisplayPageBreaks = True
For Each hpb in ActiveSheet.HPageBreaks
ActiveSheet.Range(hpb.Location).Value = "123456"
Next
...
Рейтинг: 0 / 0
Разрыв страницы в Excel
    #33046906
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой, виноват:
hpb.Location.Value = "123456"
...
Рейтинг: 0 / 0
Разрыв страницы в Excel
    #33046978
Фотография xax_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за оперативный ответ. Вставил прведенный код в макрос,
Код: plaintext
1.
2.
3.
4.
5.
6.
Sub myHPB()
Dim hpb As HPageBreak
ActiveSheet.DisplayPageBreaks = True
For Each hpb In ActiveSheet.HPageBreaks
hpb.Location.Value = "123456"
Next
End Sub
но возникла проблема. Ругается на строку
Код: plaintext
For Each hpb In ActiveSheet.HPageBreaks
Subscrip out of range
При это несколько раз код сработал, а потом опять заругался...
Видимо что-то не так делаю?
...
Рейтинг: 0 / 0
Разрыв страницы в Excel
    #33047103
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xax_nvРугается на строку
Код: plaintext
For Each hpb In ActiveSheet.HPageBreaks
Subscrip out of range
При это несколько раз код сработал, а потом опять заругался...
Видимо что-то не так делаю?
Ага, забыл добавить в реальный код команду
ActiveSheet.DisplayPageBreaks = True
Я ее не для красоты привел :)

Прикол там в том, что коллекции HPageBreaks и VPageBreaks заполняются при попытке печати или предварительного просмотра. До тех пор они пустые, либо содержат список "жестких" (сделаных вручную) переводов страниц. После просмотра/печати в *PageBreaks добавляются автоматически расчитаные переводы страницы.
Для принудительного перерасчета переводов страниц без печати и существует команда Worksheet.DisplayPageBreaks = True
...
Рейтинг: 0 / 0
Разрыв страницы в Excel
    #33048748
Фотография xax_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да нет! Строка на месте

Sub myHPB()
Dim hpb As HPageBreak
ActiveSheet.DisplayPageBreaks = True
For Each hpb In ActiveSheet.HPageBreaks
hpb.Location.Value = "123456"
Next
End Sub

Видимо дело в другом. Вообще то мне надо пронумеровать ячейки, а здесь "цифири" заносятся в первую ячейку (несколько раз код все-таки сработал!)
...
Рейтинг: 0 / 0
Разрыв страницы в Excel
    #33048985
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xax_nvВидимо дело в другом. Вообще то мне надо пронумеровать ячейки, а здесь "цифири" заносятся в первую ячейку (несколько раз код все-таки сработал!)
А ты случаем не добавляешь/удаляешь строки во время работы этого макроса? Если да, то коллекция может во время работы обновится, а цикл For Each будет пытаться работать по старой коллекции. Тогда действительно можно получить Subscript out of range. Замени For Each на While c ручным расчетом индекса. Что то вроде
Код: plaintext
1.
2.
3.
4.
5.
i= 0  
While i < ActiveSheet.HPageBreaks.Count
   hpb = ActiveSheet.HPageBreaks(i)
   i = i + 1 
Wend
Хотя если твой макрос меняет количество строк на листе, там надо очень внимательно смотреть в какую сторону меняется количество переводов страницы.
...
Рейтинг: 0 / 0
Разрыв страницы в Excel
    #33049073
Фотография xax_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тот же эффект, теперь ругается на строчку
Код: plaintext
hpb = ActiveSheet.HPageBreaks(i)
Причем в старом варианте несколько раз сработал, а потом опять... Может быть Касперский виноват? Но Office Guard выключен...
...
Рейтинг: 0 / 0
Разрыв страницы в Excel
    #33049166
Фотография xax_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема решилась копированием содержимого листа в новый файл. Видимо что-то было не то в самом файле. Вообще то он был сформирован в Access. Возможно в этом причина, завтра попробую вставить текст макрома в общий код в Access, посмотрю, что получится. Да, и строчка
Код: plaintext
Dim hpb As HPageBreaks
была лишней, перемудрил. Спасибо за помощь. Теперь еще нужно доработать код так, чтобы после разрыва страницы вставлялась пустая строка и в ней пронумеровать ячейки. Попрбую сам справиться.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Разрыв страницы в Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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