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

 

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

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
При воспроизведении,макрос перескакивает на другой макрос.
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
Группа: Проверенные
Ранг: Обитатель
Сообщений: 467
Репутация: 129 ±
Замечаний: 0% ±

Excel 1997
blayd2007, добавьте пару строк в код -

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


А так-то чистить надо полученный макрорекордером код от селектов и прочего мусора.
 
Ответить
Сообщение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 = ТrueEnd 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
Группа: Админы
Ранг: Местный житель
Сообщений: 16895
Репутация: 6613 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Цитата blayd2007, 06.05.2018 в 14:58, в сообщении № 3 ( писал(а)):
что еще я могу сократить в данном и других кодах

В других не заю, у Вас там только один код, в котором можно так

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

К сообщению приложен файл: 7229659_1.xls (63.0 Kb)


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

В других не заю, у Вас там только один код, в котором можно так
[vba]
Sub Резервы()Application.ScreenUpdating = 0Application.EnableEvents = 0ActiveSheet.UnprotectRange("Q35:Q55").Copy Range("K35")ActiveSheet.ProtectRange("K34").SelectApplication.EnableEvents = 1Application.ScreenUpdating = 1'обязательноundefinedundefinedundefined вернуть обратноEnd Sub
[/vba]

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

2010
Цитата _Boroda_, 06.05.2018 в 18:06, в сообщении № 4 ( писал(а)):
Application.ScreenUpdating = 1'обязательно!!! вернуть обратно

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


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Цитата _Boroda_, 06.05.2018 в 18:06, в сообщении № 4 ( писал(а)):
Application.ScreenUpdating = 1'обязательно!!! вернуть обратно

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

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

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

Цитата RAN, 06.05.2018 в 18:43, в сообщении № 5 ( писал(а)):
Борода безбородая!

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


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

Цитата RAN, 06.05.2018 в 18:43, в сообщении № 5 ( писал(а)):
Борода безбородая!

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

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

2010
Цитата _Boroda_, 06.05.2018 в 18:53, в сообщении № 6 ( писал(а)):
Да, я помню этот случай на форуме, Марина догадалась (искать сейчас лень)

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


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

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

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

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

Оффтоп:
И что мне с твоей шляпой делать? Забирай отбратно


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
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
Группа: Админы
Ранг: Местный житель
Сообщений: 16895
Репутация: 6613 ±
Замечаний: ±

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
  • Страница 1 из 1
  • 1
Поиск:

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