Изменяется скорость выполнения
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
Внимание вопрос. До того как я нажму ПРЕДВАРИТЕЛЬНЫЙ ПРОСМОТР код выполняется бвстро. А после нажатия ПРЕДВАРИТЕЛЬНЫЙ ПРОСМОТР - скорость падает очень сильно. От чего так?
Интересно Есть вот такой код (эксель)
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
Внимание вопрос. До того как я нажму ПРЕДВАРИТЕЛЬНЫЙ ПРОСМОТР код выполняется бвстро. А после нажатия ПРЕДВАРИТЕЛЬНЫЙ ПРОСМОТР - скорость падает очень сильно. От чего так?
Скорее всего потому, что приложению, помимо выполнения твоего кода. приходится ещё и генерить перерисовку предварительного просмотра. А это, уверяю, для его оч-ч-ч-чень непросто...
Интересно Есть вот такой код (эксель)
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 удивляется :)
Ты хочешь сказать что во время выполнения кода ты запускаешь предварительный просмотр причем этого же листа, который щас изменяется макросом? вот небось Excel удивляется :)
Нет. Открываю файл с макросом. Запускаю его, нормально быстро так работает. Все устраивает.
Открываю его же (файл), но перед запуском макроса нажимаю предварительный просмотр, а уже потом запускаю макрос (не в окне просмотра конечно :))
Скорость в это м случае падает конктретно
Нет. Открываю файл с макросом. Запускаю его, нормально быстро так работает. Все устраивает.
Открываю его же (файл), но перед запуском макроса нажимаю предварительный просмотр, а уже потом запускаю макрос (не в окне просмотра конечно :))
Скорость в это м случае падает конктретно
Скорее всено ситуёвина следующая:
Excel, показывая предварительный просмотр, старается отображать всё адекватно. При этом предварительный просмотр требует приличных машинных ресурсов, так как приложение при этом много чего просчитывает.
Ты запускаешь макрос. Excel думает, что макрос что-то меняет на листе и пытается адекватно перерисовывать просмотр. Может даже он его не перерисовывает, но ресурсы это хапает. поэтому всё и тормозит.
Скорее всено ситуёвина следующая:
Excel, показывая предварительный просмотр, старается отображать всё адекватно. При этом предварительный просмотр требует приличных машинных ресурсов, так как приложение при этом много чего просчитывает.
Ты запускаешь макрос. Excel думает, что макрос что-то меняет на листе и пытается адекватно перерисовывать просмотр. Может даже он его не перерисовывает, но ресурсы это хапает. поэтому всё и тормозит.
А как тогда возвращать файл к состоянию, которое он имеет до нажатия ПРЕДВАРИТЕЛЬНЫЙ ПРОСМОТР?
А как тогда возвращать файл к состоянию, которое он имеет до нажатия ПРЕДВАРИТЕЛЬНЫЙ ПРОСМОТР?
Вызываем просмотр
ActiveWindow.SelectedSheets.PrintPreview
Отключаем просмотр
ActiveWindow.View = xlPageBreakPreview
Говорим, что показать надо в нормальном виде лист
ActiveWindow.View = xlNormalView
От этого и пляши