|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.09.2009, 19:01 | #1 |
Пользователь
Регистрация: 22.07.2009
Сообщений: 18
|
Зависает документ при срабатывании макроса
Здравствуйте!! Здесь описывал проблему, которую удалось решить, однако возникла следующая ситуация.. Пришлось применить этот же макрос к другому документу такого же типа.. НО!! Если в документах, для которых был написан этот макрос, все прекрасно работало, в других документах при редактировании ячеек, подвластных макросу, сам макрос срабатывает (наблюдаю визуально), но после этого сразу документ виснет секунд на 30. Подозревая что неладное может быть в самом документе, сегодня создал такой же, от начала и до конца, и в результате ситуация не изменилась(( Для наглядности по указанной ссылке можно посмотреть тот самый злополучный документ..
Друзья, кто чем может, выручайте пожалуйста) Последний раз редактировалось Quatro_Drive; 21.09.2009 в 19:04. |
21.09.2009, 19:30 | #2 |
Участник клуба
Регистрация: 17.07.2009
Сообщений: 1,088
|
Quatro_Drive, документ по ссылке запаролен. Мы не владеем древним искусством телепатии...
Есть предположение, что в файле много формул, которые после каждого изменения, естесственно, начинают пересчитываться. Отсюда зависание.
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru |
21.09.2009, 19:41 | #3 |
Пользователь
Регистрация: 22.07.2009
Сообщений: 18
|
Прошу прощения за косяк, исправлюсь. В приложении документ без пароля. По поводу Вашего предположения могу сказать что формул по минимуму, все на сложении и умножении..
|
21.09.2009, 19:56 | #4 |
Участник клуба
Регистрация: 17.07.2009
Сообщений: 1,088
|
Попробуйте так
Код:
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru |
22.09.2009, 14:24 | #5 |
Пользователь
Регистрация: 22.07.2009
Сообщений: 18
|
Здорово, это помогло)
Я так понял, что код отличался наличием еще двух строк, которые рекомендовал попробовать SAS888 самыми первыми и последними Application.EnableEvents = False Application.EnableEvents = True Пусть банально, но возникает вопрос, в чом скрывалась главная проблемаи как помогли ее решить эти две строки? Спасибо за помощь!! |
22.09.2009, 15:14 | #6 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
1) При изменении ячейки запускается макрос Workbook_SheetChange 2) Этот макрос изменяет ячейку: Target = Application.WorksheetFunction.Round Up(Target, 0) 3) Это изменение запускает вторую копию макроса Workbook_SheetChange, который опять изменяет ту же ячейку, и т.д. до бесконечности. Отключение обработки событий Application.EnableEvents = False Application.EnableEvents = True позволяет избежать зацикливания. |
|
22.09.2009, 23:21 | #7 |
Пользователь
Регистрация: 22.07.2009
Сообщений: 18
|
Спасибо всем откликнувшимся!!
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Выполнение макроса при нажатии на Лист | KinderX | Microsoft Office Excel | 7 | 01.07.2009 17:19 |
При создании нескольких экземпляров класса приложение зависает | Mixasik | Общие вопросы C/C++ | 1 | 25.04.2009 13:25 |
VB6. Программа зависает при выполнении. | Artinka | Помощь студентам | 2 | 03.04.2008 00:06 |
При выполнении макроса, дергается таблица | valerij | Microsoft Office Excel | 3 | 23.03.2008 00:38 |