Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Изменяется скорость выполнения

464
02 апреля 2004 года
WildAn
147 / / 19.05.2003
Интересно Есть вот такой код (эксель)
Код:
Private Sub CommandButton1_Click()
Dim c As Range
Dim i As Integer
    UserForm1.Hide
    For i = 7 To 168
    With ActiveSheet
    .Range("B" & i & ":I" & i).Select
        Sum = 0
        For Each c In Selection
            Sum = Sum + c.Value
            If c.Value = 0 Then c.Font.ColorIndex = 2
        Next c
            If Sum = 0 Then
            Rows(i).Select
            Selection.EntireRow.Hidden = True
            End If
    End With
    Next i
    Range("a3:i168").Select
End Sub

Внимание вопрос. До того как я нажму ПРЕДВАРИТЕЛЬНЫЙ ПРОСМОТР код выполняется бвстро. А после нажатия ПРЕДВАРИТЕЛЬНЫЙ ПРОСМОТР - скорость падает очень сильно. От чего так?
266
02 апреля 2004 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by WildAn
Интересно Есть вот такой код (эксель)
Код:
Private Sub CommandButton1_Click()
Dim c As Range
Dim i As Integer
    UserForm1.Hide
    For i = 7 To 168
    With ActiveSheet
    .Range("B" & i & ":I" & i).Select
        Sum = 0
        For Each c In Selection
            Sum = Sum + c.Value
            If c.Value = 0 Then c.Font.ColorIndex = 2
        Next c
            If Sum = 0 Then
            Rows(i).Select
            Selection.EntireRow.Hidden = True
            End If
    End With
    Next i
    Range("a3:i168").Select
End Sub

Внимание вопрос. До того как я нажму ПРЕДВАРИТЕЛЬНЫЙ ПРОСМОТР код выполняется бвстро. А после нажатия ПРЕДВАРИТЕЛЬНЫЙ ПРОСМОТР - скорость падает очень сильно. От чего так?


Скорее всего потому, что приложению, помимо выполнения твоего кода. приходится ещё и генерить перерисовку предварительного просмотра. А это, уверяю, для его оч-ч-ч-чень непросто...

258
02 апреля 2004 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by WildAn
Интересно Есть вот такой код (эксель)
Код:
Private Sub CommandButton1_Click()
Dim c As Range
Dim i As Integer
    UserForm1.Hide
    For i = 7 To 168
    With ActiveSheet
    .Range("B" & i & ":I" & i).Select
        Sum = 0
        For Each c In Selection
            Sum = Sum + c.Value
            If c.Value = 0 Then c.Font.ColorIndex = 2
        Next c
            If Sum = 0 Then
            Rows(i).Select
            Selection.EntireRow.Hidden = True
            End If
    End With
    Next i
    Range("a3:i168").Select
End Sub

Внимание вопрос. До того как я нажму ПРЕДВАРИТЕЛЬНЫЙ ПРОСМОТР код выполняется бвстро. А после нажатия ПРЕДВАРИТЕЛЬНЫЙ ПРОСМОТР - скорость падает очень сильно. От чего так?



Ты хочешь сказать что во время выполнения кода ты запускаешь предварительный просмотр причем этого же листа, который щас изменяется макросом? вот небось Excel удивляется :)

464
02 апреля 2004 года
WildAn
147 / / 19.05.2003
Цитата:
Originally posted by SergeySV


Ты хочешь сказать что во время выполнения кода ты запускаешь предварительный просмотр причем этого же листа, который щас изменяется макросом? вот небось Excel удивляется :)


Нет. Открываю файл с макросом. Запускаю его, нормально быстро так работает. Все устраивает.
Открываю его же (файл), но перед запуском макроса нажимаю предварительный просмотр, а уже потом запускаю макрос (не в окне просмотра конечно :))
Скорость в это м случае падает конктретно

266
02 апреля 2004 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by WildAn

Нет. Открываю файл с макросом. Запускаю его, нормально быстро так работает. Все устраивает.
Открываю его же (файл), но перед запуском макроса нажимаю предварительный просмотр, а уже потом запускаю макрос (не в окне просмотра конечно :))
Скорость в это м случае падает конктретно


Скорее всено ситуёвина следующая:
Excel, показывая предварительный просмотр, старается отображать всё адекватно. При этом предварительный просмотр требует приличных машинных ресурсов, так как приложение при этом много чего просчитывает.
Ты запускаешь макрос. Excel думает, что макрос что-то меняет на листе и пытается адекватно перерисовывать просмотр. Может даже он его не перерисовывает, но ресурсы это хапает. поэтому всё и тормозит.

464
02 апреля 2004 года
WildAn
147 / / 19.05.2003
Цитата:
Originally posted by mhaturov

Скорее всено ситуёвина следующая:
Excel, показывая предварительный просмотр, старается отображать всё адекватно. При этом предварительный просмотр требует приличных машинных ресурсов, так как приложение при этом много чего просчитывает.
Ты запускаешь макрос. Excel думает, что макрос что-то меняет на листе и пытается адекватно перерисовывать просмотр. Может даже он его не перерисовывает, но ресурсы это хапает. поэтому всё и тормозит.


А как тогда возвращать файл к состоянию, которое он имеет до нажатия ПРЕДВАРИТЕЛЬНЫЙ ПРОСМОТР?

266
02 апреля 2004 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by WildAn

А как тогда возвращать файл к состоянию, которое он имеет до нажатия ПРЕДВАРИТЕЛЬНЫЙ ПРОСМОТР?



Вызываем просмотр
ActiveWindow.SelectedSheets.PrintPreview
Отключаем просмотр
ActiveWindow.View = xlPageBreakPreview
Говорим, что показать надо в нормальном виде лист
ActiveWindow.View = xlNormalView

От этого и пляши

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог