VBA 中的类模块与模块

问题描述 投票:0回答:1

我是新手,正在尝试了解 VBA。

模块和类模块有什么区别?为什么我只能在模块内有宏。 (我认为我在这里错了,但我不知道如何从类模块添加宏)

最后,我必须将所有事件处理程序添加到类模块中,并将所有宏代码添加到模块中。

vba class module
1个回答
2
投票

模块在整个代码中都是全局的。默认情况下,记录的宏保存在模块中,但您可以剪切代码并将子/函数粘贴到类中。

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仅供参考,子例程和函数之间的区别是:函数返回一个值,而子例程只是执行某些操作。

© www.soinside.com 2019 - 2024. All rights reserved.