У меня есть простой код, который перемещает лист «Данные» после активированного листа.
Sub Workbook_SheetActivate(ByVal Sh As Object)
Worksheets("Data").Move After:=Worksheets(Sh.Name)
Worksheets(Sh.Name).Activate
End Sub
Я использую
Worksheets(Sh.Name).Activate
потому что без этой строки рабочий лист «Данные» остается выбранным после перемещения, которое не является намерением.
Проблема, с которой я столкнулся, заключается в том, что при запуске этого кода Excel занимает около 2-3 секунд, чтобы подумать об этом, прежде чем увидеть результат.
Я не понимаю, почему. Без объединения этих двух операций в единое целое это занимает миллисекунды. Может кто-нибудь объяснить, как это улучшить и почему это происходит?