Почему запуск этого макроса занимает 40 секунд? - PullRequest
0 голосов
/ 28 апреля 2020

Я пробовал так много вещей, и все еще обнаруживаю, что запуск этого макроса занимает 40 секунд. У кого-нибудь есть идеи относительно того, как я мог бы сделать это более эффективным?

Public CalcState As Long
Public EventState As Boolean
Public PageBreakState As Boolean

Sub OptimizeCode_Begin()

Application.ScreenUpdating = False

EventState = Application.EnableEvents
Application.EnableEvents = False

CalcState = Application.Calculation
Application.Calculation = xlCalculationManual

PageBreakState = ActiveSheet.DisplayPageBreaks
ActiveSheet.DisplayPageBreaks = False

End Sub

Sub OptimizeCode_End()

ActiveSheet.DisplayPageBreaks = PageBreakState
Application.Calculation = CalcState
Application.EnableEvents = EventState
Application.ScreenUpdating = True

End Sub

Sub Input_V2()
Call OptimizeCode_Begin
    Sheets("R_Database Sheet").Range("a6:x6").Insert: Sheets("R_Database Sheet").Range("a6:x6").Value2 = Sheets("R_Database Sheet").Range("a3:x3").Value2
With Sheets("R_Database Sheet").Range("a6:x6")
    .ClearFormats
    .RowHeight = 15
End With

Call OptimizeCode_End
End Sub

1 Ответ

0 голосов
/ 28 апреля 2020

При вставке диапазона Excel должен проверить, нужно ли корректировать другие формулы в открытых книгах, чтобы компенсировать вставку. Если у вас большое количество формул или несколько сложных формул, эта операция может быть медленной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...