помогите пожалуйста!
есть файл с большим кол-вом формул и немаленьким макросом установленным на событие Worksheet_Change. При срабатывании этого макроса идут жуткие тормоза из-за того, что в процессе его работы несколько раз пересчитывается лист, в чём нет необходимости.
Я решил эту проблему установкой ручного расчёта формул и насильного пересчёта там где это нужно. Постоянно ручной пересчёт я ставить не хочу, поэтому первой строчкой после Worksheet_Change поставил
Application.Calculation =xlCalculationManual
и в конце макроса
Application.Calculation = xlCalculationAutomatic
а теперь вопрос:
почему когда стоит автоматический пересчёт и происходит изменение на листе (например выбор из выпадающего списка) перед запуском Worksheet_Change эксель о чём-то задумывается, как будто пересчитывает лист?
если тот же выбор из выпадающего списка делать когда стоит ручной пересчёт, то перед запуском Worksheet_Change эксель не задумывается
так вот что он делает перед Worksheet_Change? и как ему объяснить что не надо ничего пересчитывать?
есть файл с большим кол-вом формул и немаленьким макросом установленным на событие Worksheet_Change. При срабатывании этого макроса идут жуткие тормоза из-за того, что в процессе его работы несколько раз пересчитывается лист, в чём нет необходимости.
Я решил эту проблему установкой ручного расчёта формул и насильного пересчёта там где это нужно. Постоянно ручной пересчёт я ставить не хочу, поэтому первой строчкой после Worksheet_Change поставил
Application.Calculation =xlCalculationManual
и в конце макроса
Application.Calculation = xlCalculationAutomatic
а теперь вопрос:
почему когда стоит автоматический пересчёт и происходит изменение на листе (например выбор из выпадающего списка) перед запуском Worksheet_Change эксель о чём-то задумывается, как будто пересчитывает лист?
если тот же выбор из выпадающего списка делать когда стоит ручной пересчёт, то перед запуском Worksheet_Change эксель не задумывается
так вот что он делает перед Worksheet_Change? и как ему объяснить что не надо ничего пересчитывать?