2012-12-27 43 views
0

我试图在VBA类模块中设置一个变量,每当该类的实例被初始化时,该变量就会增加。如何设置类级别变量

例如,该类的实例1日将有个“1”,接下来的将是“2”,等等。

我道歉,如果我的术语是不正确的。

Private Sub Class_Initialize() 
    Number=Number+1<-- This variable would increment every time there is a new instance 
End Sub 
+3

你有什么理由获得实例的数量? – shahkalpesh

+0

这段代码应该是正确的。只要确保'Number'实际上是一个类变量。换句话说,它必须是静态的。 – Neko

回答

1

在类的顶部声明你的变量 - 静态数量

不能在VBA声明静态类varaible! 使用真正的面向对象语言(如Java)是可能的。

+2

VBA不允许在类模块中声明静态变量。 – stenci

2

在模块中声明全局或公共变量Public NumberOfInstances as Long

 
Private Sub Class_Initialize() 
    NumberOfInstances = NumberOfInstances + 1 
End Sub 

如果你想知道每个实例有哪个号码,你需要一个成员变量添加到类,并初始化它,如:

然后在课堂上使用这个代码

 
Private mInstanceCount as Long 

Public Property Get InstanceCount() as Long: InstanceCount = mInstanceCount: End Property 

Private Sub Class_Initialize() 
    NumberOfInstances = NumberOfInstances + 1 
    mInstanceCount = NumberOfInstances 
End Sub