vba - ComboBox Enter 事件从对象浏览器中消失
问题描述
我有一个类模块,我在我的 Excel VBA 项目中扩展 MSForms ComboBox 的功能。我将组合框引用添加到我的班级:
Private WithEvents cBox As ComboBox
我为这个组合框添加了一堆事件处理程序,包括 Enter 事件:
Private Sub cBox_Enter()
...
End Sub
这工作正常,突然间我的 Enter 事件停止触发。所以我开始调查,发现它不再被列为“cBox”事件列表中的事件之一。事实上,其他事件也丢失了。发生这种情况时,我没有对 References 进行任何更改。在此之前我所做的最后一个更改是注释掉一些我没有用来完成我的功能的事件。评论它们并恢复它们并没有带回事件。现在,所有缺少的事件处理程序都列为类本身下的函数(例如 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 列表中。我还去了对象浏览器并查看了组合框对象,在类浏览器中这些事件也丢失了。
有没有人见过这个并且知道如何在类模块中恢复这些事件?
注意:我使用的是 Excel 2003
解决方案
一开始,没有足够的声誉作为评论发布,所以发布作为答案。
我观察到,在工作表中使用的控件比在用户表单中使用的事件和方法要少,我曾在 2003 年的空白工作表和不同系统上的 Office 365 上尝试过此操作。
推荐阅读
- python - 如何在复杂元素中将键发送到python selenium中的输入标签
- python - 如何使用组身份作为 SkLearn 交叉验证的估计量?
- delphi - 从资源 (.res) 文件加载文本会产生奇怪的字符
- iot - 使用 X509 的客户端到客户端通信
- python - 给定列数,我想以矩阵形式打印每个单词中的字母
- javascript - 开玩笑没有检测到函数调用
- python-3.x - Python - 为变量赋值
- python-3.x - Python 3 字符串格式问题
- asp.net-identity - ASP.Net Core 使用 IdentityServer4 检查角色声明
- firebase - redux-observable 和 rxjs 的史诗错误