我有一个类模块,用于在Excel VBA项目中扩展MSForms ComboBox的功能。 我在班级添加了组合框引用:
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