События Excel игнорируются / больше не перехватываются, т.е. Worksheet_Change не вводится при изменении
Я работаю над сложным решением на основе электронных таблиц. Иногда пользователь сталкивается с проблемой, когда события в листе, похоже, больше не перехватываются Excel.
В настоящее время я не могу воспроизвести это поведение, но я просмотрел данный компьютер и могу подтвердить, что, несмотря на то, что он ставит точку останова, ни один из них не вызывается:
Worksheet_Activate ()
Worksheet_Deactivate ()
Worksheet_Change (Целевой показатель ByVal как диапазон)
Worksheet_BeforeDoubleClick (Целевой показатель ByVal как диапазон, отменить как логический)
Это, конечно, будет решено старой классикой "Вы устали включать и выключать ( Excel) снова и снова", но мне было интересно, как это может произойти и как это можно предотвратить?
Я даже поместил Stop / MsgBox "бла" в методы, чтобы увидеть, была ли это просто точка останова в VBE, но я ничего не получил за это.
Итак, кто-нибудь знает, почему Excel не так уж и громко поднимает события?
Приветствия.
FRD
2 ответа
Проверьте ваши коды для:
Application.EnableEvents=False
Если вы выключили его, Excel не включит его снова после завершения процедуры, поэтому обязательно установите для этого параметра значение TRUE в конце вашей процедуры.
Если вы установили значение False в начале своей процедуры и остановили процедуру, прежде чем снова установить ее в значение True, то она останется отключенной.
Если ваш код падает до достижения Application.EnableEvents=True
линия, то она тоже останется отключенной.
Однажды у меня была эта проблема на листе, который не содержит никаких формул... и именно поэтому Excel не выполняла событие Calculate!
Обратите внимание... Событие Calculate Мне нужно было запустить некоторый код, если таблица данных была отфильтрована... так что я закончил тем, что добавил маленькую Sum(), которая указывала на столбец в моей таблице в скрытой ячейке, и достаточно забавно, что было событие расчета для запуска каждый раз, когда лист был отфильтрован:)