我有一个类 - “Class1”,其属性 - “attribute1”为字符串。 此属性的可能值是{1,2}
Class1模块
Private pattribute1 As String
Public Property Get attribute1 () As String
attribute1 = pattribute1
End Property
Public Property Let attribute1 (Value As String)
pattribute1 = Value
End Property
在我的主程序中,我需要检索attribute1值等于{1}的所有对象。
主要模块
Dim col As New Collection
'Create objects
Do While j <= 5
Dim obj As Class1
Set obj= New Class1
if j<3 then
obj.attribute1 = "1"
else
obj.attribute1 = "2"
end if
j = j + 1
Loop
Set col = 'get all objects from Class1 with attribute equal to "1"
哪种方法最有效?
提前谢谢你。
答案 0 :(得分:0)
将Main
模块中的代码修改为以下代码:
Option Explicit
Sub TestClass1()
Dim col() As New Class1
Dim obj As Class1
Dim j As Long
Dim id As Long
ReDim col(0 To 100) '<-- init to large size, will optimize later
'Create objects
Do While j <= 5
Set obj = New Class1
If j < 3 Then
obj.attribute1 = "1"
Set col(id) = obj '<-- add to col when equals 1
id = id + 1
Else
obj.attribute1 = "2"
End If
j = j + 1
Set obj = New Nothing
Loop
ReDim Preserve col(0 To id - 1) '<-- resize array to populated size
End Sub