【发布时间】:2022-09-23 23:30:21
【问题描述】:
我最近假设因为函数的名称除了它的定义之外没有出现在代码库中的任何地方,它一定是死代码。后来我发现它实际上是一个事件,因此没有死。它的名字和签名是Private Sub lstFooWeekly_Change()。现在我知道了the Change() event,很明显这段代码没有死。将来,我希望能够提前发现事件。
我的问题是:给定看起来像函数的东西的签名,我怎么知道它是否是一个事件?
注意:我是一个完全的 VBA 新手。我尝试在文档中搜索我的问题的任何答案,但我发现的只是特定事件的文档。似乎一般模式是“如果它是Private Sub 并且名称中有_,那么它就是一个事件”,但如果没有官方来源,我不能相信这一点。此外,对于我的“如果”猜测,我更喜欢“当且仅当”解决方案。如果我正在寻找的东西在任何地方都有记录,我会很感激一个链接。
-
事件的名称中确实有一个
_,但并非所有具有_的子例程都是事件处理程序(例如,使用snake_case 编写的用户,如Sub Foo_Bar_Baz,这是一个很好的理由不是使用snake_case)。 -
为了安全起见,请仅信任文档和适用的 VBA 对象浏览器。
-
@KostasK。对象浏览器可以在这里提供帮助吗?我对此比较无知。
-
是的,它可以。它列出了(几乎)所有对象的属性、方法和事件。没有太多的信息,但你可以看到发生了什么。
-
@KostasK。我刚刚看了看。我没有看到任何清楚地告诉我所讨论的事件是事件的东西。