Страницы: 1
RSS
Странное выполнение макроса
 
В книге 1 лист. При нажатии на кнопку запускается макрос (добавляет строки) расположенный в Module1.  
Добавил в Module2 функцию число прописью и на листе1 Private Sub Worksheet_Change (скрывает строки). При этом заметно увеличилось время выполнения макроса. При пошаговом выполнении (F8) видно что в ходе макроса выполняются еще и два других добавленных, при этом команд на их выполнение нет. Удаляю Private Sub Worksheet_Change и все работает нормально. Почему так?
 
Во всех макросах, которые так или иначе изменяют ячейки на листе, используйте такую конструкцию:  
 
Sub Макрос()  
   Application.EnableEvents = False    ' отключаем обработку событий типа Worksheet_Change  
 
   ' код макроса ( макрос изменяет ячейки, но Worksheet_Change теперь не срабатывает)  
   Cells(2) = "текст"  
 
   Application.EnableEvents = True    ' включаем обратно  
End Sub
 
EducatedFool, спасибо, сработало.  
Мысля про это была (правда не знал как сделать), но думал что событие Worksheet_Change не происходит когда изменение вводятся из VBA.
Страницы: 1
Читают тему
Наверх