События 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(), которая указывала на столбец в моей таблице в скрытой ячейке, и достаточно забавно, что было событие расчета для запуска каждый раз, когда лист был отфильтрован:)

Другие вопросы по тегам