Страницы: 1
RSS
Макрос срабатывает с разным промежутком времени
 
Доброй ночи. Макрос копирует значения с лист2 в лист1, при нажатии на кнопку его выполнение происходит всегда по-разному, иногда за секунду, а то и быстрее, но чаще приходится ждать секунд 5-7, при этом кнопка исчезает на время его выполнения, а потом снова появляется. В чем может быть причина?
То ли эксель глючит, или код плохой, или может есть еще какая-то причина?
Код
Sub Кнопка2_Щелчок()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
ActiveWorkbook.ActiveSheet.DisplayPageBreaks = False

[a1:j1].Copy
Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Transpose:=False
[a2:j2].Copy
Worksheets(1).Cells(Rows.Count, 12).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Transpose:=False
[a3:j3].Copy
Worksheets(1).Cells(Rows.Count, 24).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Transpose:=False
[a4:j4].Copy
Worksheets(1).Cells(Rows.Count, 36).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Transpose:=False
[a5:j5].Copy
Worksheets(1).Cells(Rows.Count, 48).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Transpose:=False

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
End Sub

 
Отключать события нежелательно (Application.EnableEvents = False). Лучше уберите это из кода
Вы в коде отключаете пересчёт формул, а после копирования включаете - в этом месте будет происходить пересчёт всех формул на листе, если формул много - это может занимать какое-то время (секунды, минуты, смотря сколько формул)
По поводу пропадания кнопки - вы отключаете обновление экрана, это может влиять на отображение кнопки. (так же когда идёт пересчёт всех формул - Excel зависает, так же могут пропадать на это время визуальные объекты)

Добавил:
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
вот эти команды в конце макроса лучше писать в обратном порядке - сперва пересчёт формул, а потом обновление экрана
Изменено: New - 19.01.2021 03:50:28
 
New,Спасибо вам)
Страницы: 1
Наверх