У меня есть модуль класса, в котором я расширяю функциональность MSForms ComboBox в моем проекте Excel VBA.
Я добавил ссылку на поле со списком в свой класс:
Private WithEvents cBox As ComboBox
Я добавил несколько обработчиков событий для этого поля со списком, включая событие Enter:
Private Sub cBox_Enter()
...
End Sub
Это работало нормально, и однажды мое событие Enter прекратило срабатывать.
Поэтому я начал расследование и обнаружил, что он больше не указан как одно из событий в моем списке событий для «cBox». На самом деле другие события также отсутствуют.
Я не делал никаких изменений в списке литературы, когда это произошло. Последнее изменение, которое я сделал перед тем, как это произошло, - закомментировал некоторые события, которые я не использовал для выполнения своих функций. Комментирование и восстановление их не вернуло События. Все отсутствующие обработчики событий теперь перечислены как функции самого класса (например, cBox_Enter)
Текущий список имеет:
BeforeDragOver
BeforeDroporPaste
Change
Click
DblClick
DropButtonClick
Error
KeyDown
KeyPress
KeyUp
MouseDown
MouseMove
MouseUp
Однако тот же элемент управления ComboBox в пользовательской форме по-прежнему перечисляет все пропущенные события:
AfterUpdate (*)
BeforeDragOver
BeforeDroporPaste
BeforeUpdate (*)
Change
Click
DblClick
DropButtonClick
Enter (*)
Error
Exit (*)
KeyDown
KeyPress
KeyUp
MouseDown
MouseMove
MouseUp
События с (*) выше отсутствуют в классе, но присутствуют в списках UserForm.
Я также пошел в обозреватель объектов и посмотрел на объект ComboBox, а в обозревателе классов эти события также отсутствуют.
Кто-нибудь видел это раньше и знает, как вернуть эти события в модуль класса?
ПРИМЕЧАНИЕ. Я использую Excel 2003