Есть файл, на листе которого, при выборе определенной ячейки, появляется календарь, для быстрого ввода даты (это лист "данные" и ячейки C14 и C15), все отлично работает. И есть простой макрос, для копирования данных с одних ячеек в другие. Так вот, при просмотре работы макроса через "f8", выяснилось, что при воспроизведении, макрос несколько раз перескакивает на макрос календаря, записанный в тело листа. И хоть результат достигается, меня это очень беспокоит, и кажется что так быть не должно и в коде есть какая то ошибка.
Подскажите, где ошибка.
Спасибо!
Друзья, не могу понять,
Есть файл, на листе которого, при выборе определенной ячейки, появляется календарь, для быстрого ввода даты (это лист "данные" и ячейки C14 и C15), все отлично работает. И есть простой макрос, для копирования данных с одних ячеек в другие. Так вот, при просмотре работы макроса через "f8", выяснилось, что при воспроизведении, макрос несколько раз перескакивает на макрос календаря, записанный в тело листа. И хоть результат достигается, меня это очень беспокоит, и кажется что так быть не должно и в коде есть какая то ошибка.
Спасибо большое уважаемый Апострофф, за подсказку с отключением обработки событий, ранее не сталкивался с этим.
А про чистку, хочу заметить, что почистил все, на сколько в данный момент позволяют мои знания, так как если подобный код записать макрорекордером, он будет значительно больше.
Если подскажете, что еще я могу сократить в данном и других кодах, я буду Вам очень благодарен!!!
Спасибо большое уважаемый Апострофф, за подсказку с отключением обработки событий, ранее не сталкивался с этим.
А про чистку, хочу заметить, что почистил все, на сколько в данный момент позволяют мои знания, так как если подобный код записать макрорекордером, он будет значительно больше.
Если подскажете, что еще я могу сократить в данном и других кодах, я буду Вам очень благодарен!!!blayd2007
В других не заю, у Вас там только один код, в котором можно так [vba]
Код
Sub Резервы() Application.ScreenUpdating = 0 Application.EnableEvents = 0 ActiveSheet.Unprotect Range("Q35:Q55").Copy Range("K35") ActiveSheet.Protect Range("K34").Select Application.EnableEvents = 1 Application.ScreenUpdating = 1'обязательно!!! вернуть обратно End Sub
В других не заю, у Вас там только один код, в котором можно так [vba]
Код
Sub Резервы() Application.ScreenUpdating = 0 Application.EnableEvents = 0 ActiveSheet.Unprotect Range("Q35:Q55").Copy Range("K35") ActiveSheet.Protect Range("K34").Select Application.EnableEvents = 1 Application.ScreenUpdating = 1'обязательно!!! вернуть обратно End Sub
Application.ScreenUpdating = 1'обязательно!!! вернуть обратно
Привет, Борода безбородая! Зачем так надрывно? За все время макросописательства, только ОДИН раз, действительно, потребовалось принудительно включить ScreenUpdating. Зато EnableEvents этого надрыва ой как хочет.
Application.ScreenUpdating = 1'обязательно!!! вернуть обратно
Привет, Борода безбородая! Зачем так надрывно? За все время макросописательства, только ОДИН раз, действительно, потребовалось принудительно включить ScreenUpdating. Зато EnableEvents этого надрыва ой как хочет.RAN
Да, я помню этот случай на форуме, Марина догадалась (искать сейчас лень). Именно затем, что прецедент был. А EnableEvents - это однозначно, абсолютно с тобой согласен, тут никак иначе.
Да, я помню этот случай на форуме, Марина догадалась (искать сейчас лень). Именно затем, что прецедент был. А EnableEvents - это однозначно, абсолютно с тобой согласен, тут никак иначе.
Скажите пожалуйста, у меня при использовании одного файла с макросами, периодически, самопроизвольно, в параметрах вычисления с автоматического режима, переходит на ручной, это может быть связано с параметром Application.ScreenUpdating (он прописан только вверху как False) или причина в чем-то другом?
Скажите пожалуйста, у меня при использовании одного файла с макросами, периодически, самопроизвольно, в параметрах вычисления с автоматического режима, переходит на ручной, это может быть связано с параметром Application.ScreenUpdating (он прописан только вверху как False) или причина в чем-то другом?blayd2007