VBA 6.0 中的用户定义类型 (UDT) 行为

User defined type (UDT) behavior in VBA 6.0

我正在尝试创建我自己的数据类型,它应该包含一个数组和一个长数据类型;我将其定义为 public 类型:

Public Type MyData
Cluster() As Variant
Centroid As Long
End Type

而且我已经创建了一个 sub 来使用它:

 Sub Mycluster()
Dim Cong As MyData
Dim i As Long
 i = 1
 ReDim Cong.Cluster(i)
 For i = 1 To 10
 Cong.Cluster(i) = Rnd() * 9 + 1
   ReDim Preserve Cong.Cluster(i)
 Next i
  Cong.Centroid = Application.Average(Cong.Cluster)
  Debug.Print Cong.Centroid
End Sub

但是在调试时出现这个错误:

有帮助吗?

提前致谢!

您在尝试添加更多元素后重新调光,因此出现错误。但既然您预先知道尺寸,就认为您根本不需要这样做。

Sub Mycluster()

Dim Cong As MyData
Dim i As Long

ReDim Cong.Cluster(1 To 10)

For i = 1 To 10
    Cong.Cluster(i) = Rnd() * 9 + 1
    'ReDim Preserve Cong.Cluster(i)
Next i

Cong.Centroid = Application.Average(Cong.Cluster)

Debug.Print Cong.Centroid

End Sub