Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/При воспроизведении,макрос перескакивает на другой макрос. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » При воспроизведении,макрос перескакивает на другой макрос. (Макросы/Sub)
При воспроизведении,макрос перескакивает на другой макрос.
blayd2007 Дата: Воскресенье, 06.05.2018, 13:54 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 102
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Друзья, не могу понять,

Есть файл, на листе которого, при выборе определенной ячейки, появляется календарь, для быстрого ввода даты (это лист "данные" и ячейки C14 и C15), все отлично работает.
И есть простой макрос, для копирования данных с одних ячеек в другие.
Так вот, при просмотре работы макроса через "f8", выяснилось, что при воспроизведении, макрос несколько раз перескакивает на макрос календаря, записанный в тело листа.
И хоть результат достигается, меня это очень беспокоит, и кажется что так быть не должно и в коде есть какая то ошибка.

Подскажите, где ошибка.

Спасибо!
К сообщению приложен файл: 7229659.xls (94.5 Kb)
 
Ответить
СообщениеДрузья, не могу понять,

Есть файл, на листе которого, при выборе определенной ячейки, появляется календарь, для быстрого ввода даты (это лист "данные" и ячейки C14 и C15), все отлично работает.
И есть простой макрос, для копирования данных с одних ячеек в другие.
Так вот, при просмотре работы макроса через "f8", выяснилось, что при воспроизведении, макрос несколько раз перескакивает на макрос календаря, записанный в тело листа.
И хоть результат достигается, меня это очень беспокоит, и кажется что так быть не должно и в коде есть какая то ошибка.

Подскажите, где ошибка.

Спасибо!

Автор - blayd2007
Дата добавления - 06.05.2018 в 13:54
Апострофф Дата: Воскресенье, 06.05.2018, 14:12 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 444
Репутация: 122 ±
Замечаний: 0% ±

Excel 1997
blayd2007, добавьте пару строк в код -
[vba]
Код
Sub Резервы()
'

    Application.ScreenUpdating = False
    Application.EnableEvents = False
    ActiveSheet.Unprotect
    Range("Q35:Q55").Copy
    Range("K35").Select
    ActiveSheet.Paste
    Range("K44").Formula = Range("Q44").Formula
    ActiveSheet.Protect
    Range("K34").Select
    Application.EnableEvents = True

End Sub
[/vba]
А так-то чистить надо полученный макрорекордером код от селектов и прочего мусора.
 
Ответить
Сообщениеblayd2007, добавьте пару строк в код -
[vba]
Код
Sub Резервы()
'

    Application.ScreenUpdating = False
    Application.EnableEvents = False
    ActiveSheet.Unprotect
    Range("Q35:Q55").Copy
    Range("K35").Select
    ActiveSheet.Paste
    Range("K44").Formula = Range("Q44").Formula
    ActiveSheet.Protect
    Range("K34").Select
    Application.EnableEvents = True

End Sub
[/vba]
А так-то чистить надо полученный макрорекордером код от селектов и прочего мусора.

Автор - Апострофф
Дата добавления - 06.05.2018 в 14:12
blayd2007 Дата: Воскресенье, 06.05.2018, 14:58 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 102
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Спасибо большое уважаемый Апострофф, за подсказку с отключением обработки событий, ранее не сталкивался с этим.

А про чистку, хочу заметить, что почистил все, на сколько в данный момент позволяют мои знания, так как если подобный код записать макрорекордером,
он будет значительно больше.

Если подскажете, что еще я могу сократить в данном и других кодах, я буду Вам очень благодарен!!!
 
Ответить
СообщениеСпасибо большое уважаемый Апострофф, за подсказку с отключением обработки событий, ранее не сталкивался с этим.

А про чистку, хочу заметить, что почистил все, на сколько в данный момент позволяют мои знания, так как если подобный код записать макрорекордером,
он будет значительно больше.

Если подскажете, что еще я могу сократить в данном и других кодах, я буду Вам очень благодарен!!!

Автор - blayd2007
Дата добавления - 06.05.2018 в 14:58
_Boroda_ Дата: Воскресенье, 06.05.2018, 18:06 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
что еще я могу сократить в данном и других кодах

В других не заю, у Вас там только один код, в котором можно так
[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]
К сообщению приложен файл: 7229659_1.xls (63.0 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
что еще я могу сократить в данном и других кодах

В других не заю, у Вас там только один код, в котором можно так
[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]

Автор - _Boroda_
Дата добавления - 06.05.2018 в 18:06
RAN Дата: Воскресенье, 06.05.2018, 18:43 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Application.ScreenUpdating = 1'обязательно!!! вернуть обратно

Привет, Борода безбородая!
Зачем так надрывно?
За все время макросописательства, только ОДИН раз, действительно, потребовалось принудительно включить ScreenUpdating.
Зато EnableEvents этого надрыва ой как хочет.


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Application.ScreenUpdating = 1'обязательно!!! вернуть обратно

Привет, Борода безбородая!
Зачем так надрывно?
За все время макросописательства, только ОДИН раз, действительно, потребовалось принудительно включить ScreenUpdating.
Зато EnableEvents этого надрыва ой как хочет.

Автор - RAN
Дата добавления - 06.05.2018 в 18:43
_Boroda_ Дата: Воскресенье, 06.05.2018, 18:53 | Сообщение № 6
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Да, я помню этот случай на форуме, Марина догадалась (искать сейчас лень). Именно затем, что прецедент был.
А EnableEvents - это однозначно, абсолютно с тобой согласен, тут никак иначе.

Борода безбородая!

Я уже немножко боро'дая


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеДа, я помню этот случай на форуме, Марина догадалась (искать сейчас лень). Именно затем, что прецедент был.
А EnableEvents - это однозначно, абсолютно с тобой согласен, тут никак иначе.

Борода безбородая!

Я уже немножко боро'дая

Автор - _Boroda_
Дата добавления - 06.05.2018 в 18:53
RAN Дата: Воскресенье, 06.05.2018, 19:14 | Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Да, я помню этот случай на форуме, Марина догадалась (искать сейчас лень)

Ты что, подобное (пусть даже чисто теоретически), сыскать можешь? Моя шляпа у Ваших ног!


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Да, я помню этот случай на форуме, Марина догадалась (искать сейчас лень)

Ты что, подобное (пусть даже чисто теоретически), сыскать можешь? Моя шляпа у Ваших ног!

Автор - RAN
Дата добавления - 06.05.2018 в 19:14
_Boroda_ Дата: Воскресенье, 06.05.2018, 20:04 | Сообщение № 8
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Да не вопрос. В поиск заводим "ScreenUpdating Марина". Второй найденный как раз то, что нужно
http://www.excelworld.ru/forum/10-29319-195570-16-1473155421

Кстати, вот еще интересная пояснялка-перевод от Романа
http://www.excelworld.ru/forum/10-18503-152071-16-1437995142

[offtop]И что мне с твоей шляпой делать? Забирай отбратно[/offtop]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеДа не вопрос. В поиск заводим "ScreenUpdating Марина". Второй найденный как раз то, что нужно
http://www.excelworld.ru/forum/10-29319-195570-16-1473155421

Кстати, вот еще интересная пояснялка-перевод от Романа
http://www.excelworld.ru/forum/10-18503-152071-16-1437995142

[offtop]И что мне с твоей шляпой делать? Забирай отбратно[/offtop]

Автор - _Boroda_
Дата добавления - 06.05.2018 в 20:04
blayd2007 Дата: Вторник, 15.05.2018, 18:23 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 102
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Скажите пожалуйста, у меня при использовании одного файла с макросами, периодически, самопроизвольно, в параметрах вычисления с автоматического режима, переходит на ручной,
это может быть связано с параметром Application.ScreenUpdating (он прописан только вверху как False) или причина в чем-то другом?
 
Ответить
СообщениеСкажите пожалуйста, у меня при использовании одного файла с макросами, периодически, самопроизвольно, в параметрах вычисления с автоматического режима, переходит на ручной,
это может быть связано с параметром Application.ScreenUpdating (он прописан только вверху как False) или причина в чем-то другом?

Автор - blayd2007
Дата добавления - 15.05.2018 в 18:23
_Boroda_ Дата: Вторник, 15.05.2018, 18:29 | Сообщение № 10
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
- Прочитайте Правила форума
- п.4 Правил форума: один вопрос - одна тема


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение- Прочитайте Правила форума
- п.4 Правил форума: один вопрос - одна тема

Автор - _Boroda_
Дата добавления - 15.05.2018 в 18:29
blayd2007 Дата: Вторник, 15.05.2018, 19:51 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 102
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Спасибо всем большое!
 
Ответить
СообщениеСпасибо всем большое!

Автор - blayd2007
Дата добавления - 15.05.2018 в 19:51
Мир MS Excel » Вопросы и решения » Вопросы по VBA » При воспроизведении,макрос перескакивает на другой макрос. (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!