Страницы: 1
RSS
Моргание при выполнении макроса, хотя от Select избавился
 
Select заменил на Activate, потом при обращении к Лист2 и Activate убрал (для возврата в Лист1 - оставил). Даже при Не скрытом Лист2 моргает при исполнении.
Что можно предпринять ?
Код
Range("E9:BB11").Copy
    Worksheets("Лист2").Range("B7").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    ActiveWorkbook.Worksheets("Лист2").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Лист2").Sort.SortFields.Add Key:=Range("B7:AY7") _
        , SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Лист2").Sort
        .SetRange Range("B7:AY9")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlLeftToRight
        .SortMethod = xlPinYin
        .Apply
    End With
    Sheets("Лист1").Activate
End Sub
 
Код
sub
  ...
  application.screenupdating = false
  ' Ваш код
  application.screenupdating = true
end sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Вот спасибо! Радикально помогло )) Ведь и вставлял Почти то и Почти туда.. но без шлеечки совсем неспособный. Благодарю!

Хотел бы узнать, почему без отключения ScreenUpdating моргает ? Ведь пишут, что и исключение селект помогает. А у меня только радикально.
Изменено: Олега - 28.02.2017 18:46:51
 
Цитата
Олега написал:
почему без отключения ScreenUpdating моргает
Любое изменение данных в активной книге провоцирует обновление экрана. А Вы там и копируете-вставляете, и сортируете...Да еще и листы активируете. Вот и моргает.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
прорисовать содержимое экрана - это довольно ресурсоемкая задача, это не только "бьет" по глазам, но требует времени на выполнение всех расчетов
если она повторяется часто - то время, затрачиваемое на это, становится критичным
и совсем другое - когда на протяжении работы процедуры накапливались изменения на листе(-ах) и потом 1 раз отобразились при присвоении application.screenupdating = true
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Понятно, я думал у меня там "чуток" ...
Страницы: 1
Наверх