我是新手,正在尝试了解 VBA。
模块和类模块有什么区别?为什么我只能在模块内有宏。 (我认为我在这里错了,但我不知道如何从类模块添加宏)
最后,我必须将所有事件处理程序添加到类模块中,并将所有宏代码添加到模块中。
模块在整个代码中都是全局的。默认情况下,记录的宏保存在模块中,但您可以剪切代码并将子/函数粘贴到类中。
Mod1.DoSomething()
' Mod1 不需要实例化,它在应用程序中是全局的,只有一个实例,这称为单例模式。
类是一个需要实例化它们的概念,并且它们的范围是有限的。
Public globalScope as New Class0
'<-- class0's methods are available in and outside a Module or Class.
Private memberScope as New Class1
'<-- class1's methods are available inside the whole Module or Class.
Dim localScope as New Class2
'<-- class2's methods are only available inside a Sub/Function.
您可能希望将事件处理程序保留在模块中,因为它是全局的。如果您使用事件处置课程,这些事件将不可用。
.Net 编码“模块”中的ps 称为
Static Classes
Ps2仅供参考,子例程和函数之间的区别是:函数返回一个值,而子例程只是执行某些操作。