|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.09.2010, 18:36 | #1 |
Пользователь
Регистрация: 30.11.2009
Сообщений: 13
|
Как обработать Worksheet_Change только при ручном редактировании?
Имеется таблица, заполняемая неким макросом. После автоматизированного заполнения этой таблицы ее надлежит редактировать вручную.
В коде модуля этой таблицы есть обработчик, проверяющий правильность данных в ячейках и помечающий ошибочную ячейку фоновым цветом. Код:
Как отключить обработчик изменения таблицы Worksheet_Change на момент загрузки данных, а включать только при ручном редактировании страницы? Может, кто подскажет, где подробно почитать про обработку событий Excel? Заранее благодарю! |
07.09.2010, 18:37 | #2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
В начале макроса: application.EnableEvents = false
В конце макроса: application.EnableEvents = true Ваш макрос можно переписать так: (чуть проще для понимания) Код:
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
Макросы любой сложности на заказ. Мониторинг цен конкурентов Последний раз редактировалось EducatedFool; 07.09.2010 в 18:42. |
07.09.2010, 19:04 | #3 |
Пользователь
Регистрация: 30.11.2009
Сообщений: 13
|
Уважаемый EducatedFool, огромное спасибо!
application.EnableEvents = false/true – это как раз то, что нужно! Да, несомненно Ваш код куда элегантнее! А я даже и не знал, что в VBA тоже есть "Select case"... А как оно по скорости выполнения? Что быстрее "If () Then ... ElseIf ()" или "Select Case"? |
07.09.2010, 19:54 | #4 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
Время уходит на выделение ячеек, окраску ячеек и изменение их значений. Временными затратами на проверку условий обычно можно пренебречь. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как отменить UPDATE при редактировании грида? | AK BULLETS | Общие вопросы Delphi | 11 | 25.03.2010 16:45 |
Как при редактировании заблокировать запись в БД? | Сергей089 | Помощь студентам | 4 | 25.03.2010 10:30 |
Ошибка при редактировании в Query | Toky | БД в Delphi | 8 | 14.12.2009 16:42 |
Как обработать ошибки при скачке html-страниц? | delphyok | Работа с сетью в Delphi | 6 | 14.08.2009 14:06 |
при ручном наборе некоторые процедуры неработают? | zAlexandrz | Общие вопросы Delphi | 8 | 10.11.2007 18:43 |