【问题标题】:Initialize N Class Objects; VBA初始化 N 个类对象; VBA
【发布时间】:2016-05-06 18:15:45
【问题描述】:

在 Excel VBA 中工作,我正在尝试初始化“CUserType”类的几个对象的数组,但我遇到了一些麻烦。我尝试循环执行此操作,如下所示:

For count = 1 To size
    Dim myArray(count)   As CUserType
Next

但是,VBA 似乎希望数组索引是一个常量整数。

现在我尝试用一​​个单独的函数来做,像这样:

Sub ititUsers(num As Integer)

Dim myArray()           As CUserType
Redim myArray(1 to num)

If num = 1 Then
    Dim myArray(1)      As CUserType
ElseIf num = 2 Then
    Dim myArray(1)      As New CUserType
    Dim myArray(2)      As New CUserType
ElseIf num = 3 Then
    Dim myArray(1)      As New CUserType
    Dim myArray(2)      As New CUserType
    Dim myArray(3)      As New CUserType
.
.
.
End Sub

当然,这既乏味又浪费。我对此很陌生,所以我知道我可能遗漏了一些东西。有什么帮助吗?

谢谢!

【问题讨论】:

    标签: excel vba class loops object


    【解决方案1】:

    您的Dim myArray(count) As CUserType 行已经将数组的所有元素设置为CUserType。如果你只需要初始化它,那么做一个 For 循环:

    Sub ititUsers(num As Integer)
    
        Dim i As Long
        Dim myArray() As CUserType
        Redim myArray(1 to num)
    
        For i = 1 to num
            Set myArray(i) = New CUserType
        Next i
    
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-18
      • 1970-01-01
      • 2013-06-27
      • 1970-01-01
      • 1970-01-01
      • 2022-11-20
      • 1970-01-01
      相关资源
      最近更新 更多