【发布时间】:2017-10-25 14:34:11
【问题描述】:
所有, 我正在 VBA 中设置一个类模块结构来添加具有多个里程碑的计划,但我对它很陌生。我做了以下事情:
- 一个名为“Plan”的类模块,它包含一个“名称”属性(字符串)和一个“里程碑”属性(里程碑类)。
- 此里程碑类模块是名为“里程碑”的类模块的对象集合。
- “里程碑”类具有“名称”属性和“值”属性。
所以在我的模块中,我现在正在为特定计划指定里程碑:
Plan.Milestones.Add "MilestoneA", Cells(i, 5)
Plan.Milestones.Add "MilestoneB", Cells(i, 7)
...
到目前为止一切都很好。现在对于 MilestoneC,我想知道 MilestoneA 的价值。如何获取名为“MilestoneA”的里程碑的值。
我知道下面的代码会给我答案,但我不想硬编码“item(1)”(我想使用名称):
Plan.Milestones.Item(1).Value
在 clsMilestones 类中:
Private prvt_Milestones As New Collection
Property Get Item(Index As Variant) As clsMilestone
Set Item = prvt_Milestones(Index)
End Property
Sub Add(param_Name As String, param_Value As String)
Dim new_milestone As clsMilestone
Set new_milestone = New clsMilestone
new_milestone.Name = param_Name
new_milestone.Value = param_Value
prvt_Milestones.Add new_milestone
End Sub
【问题讨论】: