在一个名为cFoolish的大型多属性类中是这段代码片段:
''''' Property Definitions
Private pID As Integer
Public Property Get ID() as Integer
ID = pID
End Property
代码模块声明了1000个cFoolish对象的元素数组,并且作为更大计划的一部分,想要将所有1000个.ID属性写入工作表:
Public Sub Test()
Dim MyArray(1 To 1000) As New cFoolish
Dim rRange As Range
Set rRange = ThisWorkbook.Sheets("Test").Range("A1:A1000")
Set rRange.Value = MyArray.ID '''''clearly doesn't work!
End Sub
对不起,这是我在VBA中使用类的第一个程序,我仍然很无能为力。我们的想法是最终得到范围A1:工作表“Test”中的A1000将填充来自cFoolish的1000个元素数组的1000个ID整数。
感谢您的帮助! 戴夫
答案 0 :(得分:2)
您需要循环,因为您必须单独处理每个实例。您可以将值预加载到数组中并执行单表更新:
Dim MyArray(1 To 1000) As New cFoolish
Dim vals(1 To 1000) As Integer
For i = 1 To 1000
vals(i) = MyArray(i).ID
Next
ThisWorkbook.Sheets("Test").Range("A1:A1000") = WorksheetFunction.Transpose(vals)