首页 > 解决方案 > VBA Excel:如何将类放入数组中

问题描述

无论如何我可以将各种类放入一个数组中,而不是像这样的硬编码:

set var1 = new cls1
set var2 = new cls2

我们可以做的:

varArr = array ( var1, var2...)
clsArr = array (cls1, cls2...)

现在我只是循环通过 varArr 和 clsArr 以相应地设置新类,例如:

sub setNew(x as double)
   set varArr(x) = new clsArr(x)
end sub

我试过了,还是不行,求大神帮忙

非常感谢 !

特里特(先生)

标签: excelvbaclass

解决方案


我尝试,但我的知识也有限。首先,我认为您不能将类放入数组中。您可以放置​​对象。我也没有使用 array() 函数。请看看我是如何进行一些演示的:

这是类模块,包含一个值、属性和一个原始打印子:

Private nr As Integer 'Use as identification

Sub cPrint()
    MsgBox "Object ID: " & nr
End Sub

Property Let ID(v As Integer)
    nr = v
End Property

在模块的第一个循环中我创建对象,输入 ID 值。在第二个中,所有 ID 值都被打印出来。我希望您可以将其用于您的目的。

Sub clsTest()
    Dim varArr(1 To 5) As cls1
    Dim i As Integer
    
    For i = 1 To 5
        Set varArr(i) = New cls1
        varArr(i).ID = i
    Next

    For i = 1 To 5
        varArr(i).cPrint
    Next
End Sub

推荐阅读