Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не правильно определяется количество разрывов страниц / 12 сообщений из 12, страница 1 из 1
09.06.2010, 18:37
    #36678997
Егорий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не правильно определяется количество разрывов страниц
Добрый день.
Мне нужно определить место разрывов страниц и вставить на это место несколько строк.
Я это делаю так:
For Each hPB In ActiveSheet.HPageBreaks
lRow = hPB.Location.Row
'...
'Копирование строк ...
'...
Rows(lRow).Select
Selection.EntireRow.Insert 'Вставка
ActiveWindow.View = xlNormalView
ActiveWindow.View = xlPageBreakPreview
Next hPB
Возникает проблема когда после вставки строк количество разрывов страниц увеличевается. Но так как я прохожу в цикле For Each по всем ActiveSheet.HPageBreaks, то обработка новых разрывов страниц не происходит. Как сделать так чтобы обрабатывались также разрывы страниц, которые были добавлены автоматически, после вставки строк, не выходя из цикла For Each?
Заранее спасибо.
...
Рейтинг: 0 / 0
09.06.2010, 18:42
    #36679005
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не правильно определяется количество разрывов страниц
Без выхода из For Each, боюсь, не выйдет.

Попробуйте работать от 1(0) до Count(-1)
...
Рейтинг: 0 / 0
09.06.2010, 18:49
    #36679024
Егорий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не правильно определяется количество разрывов страниц
Shocker.Pro, уже пробовал. Не получилось.
...
Рейтинг: 0 / 0
09.06.2010, 18:50
    #36679027
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не правильно определяется количество разрывов страниц
ЕгорийShocker.Pro, уже пробовал. Не получилось.

В чем это выразилось?
...
Рейтинг: 0 / 0
09.06.2010, 18:53
    #36679033
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не правильно определяется количество разрывов страниц
Shocker.ProЕгорийShocker.Pro, уже пробовал. Не получилось.
В чем это выразилось?
Если вы пытались циклом For сделать - то понятно.
Вот смотрите:
Код: plaintext
1.
2.
3.
4.
5.
6.
Dim i As Integer, j As Integer
j =  5 

For i =  1  To j
  j =  8 
Next
MsgBox i
...
Рейтинг: 0 / 0
09.06.2010, 18:57
    #36679036
Егорий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не правильно определяется количество разрывов страниц
Shocker.Pro, спасибо, сейчас попробую так.
...
Рейтинг: 0 / 0
09.06.2010, 18:58
    #36679040
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не правильно определяется количество разрывов страниц
ЕгорийShocker.Pro, спасибо, сейчас попробую так.
ТАК пробовать не надо. Надо через While/Until, чтобы выражение вычислялось каждый раз.
...
Рейтинг: 0 / 0
09.06.2010, 19:13
    #36679075
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не правильно определяется количество разрывов страниц
Shocker.ProТАК пробовать не надо. Надо через While/Until, чтобы выражение вычислялось каждый раз.

Для наглядности:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Dim i As Integer, j As Integer
j =  5 

For i =  1  To j
  j =  8 
Next
MsgBox i

i =  1 
j =  5 
Do While i <= j
  i = i +  1 
  j =  8 
Loop
MsgBox i
...
Рейтинг: 0 / 0
09.06.2010, 19:18
    #36679088
Егорий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не правильно определяется количество разрывов страниц
Shocker.Pro, спасибо. Все получилось. Я использовал конструкцию
while condition
'действия
Wend
...
Рейтинг: 0 / 0
10.06.2010, 08:12
    #36679723
sergeyvg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не правильно определяется количество разрывов страниц
В качестве рекомендации.
Так как после вставки строк или изменении их высоты Ексель начинает расставлять разделители страниц по новой и данная операция асинхронна, то после оператора влияющего на число разделителей и последующими операторами работы с разделителями, я вставляю оператор DoEvents.
Это важно, если страниц много и Ексель может долго возиться с расстановкой разделителей.
...
Рейтинг: 0 / 0
10.06.2010, 19:08
    #36681450
Егорий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не правильно определяется количество разрывов страниц
sergeyvg,
спасибо за рекомендацию. Насколько я понимаю это влияет на быстродействие?
...
Рейтинг: 0 / 0
11.06.2010, 08:19
    #36681927
sergeyvg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не правильно определяется количество разрывов страниц
Даже если будет на миллисекунды дольше, зато даст правильное количество страниц, что, думаю, важнее в данном случае:)
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не правильно определяется количество разрывов страниц / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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