【发布时间】:2015-10-10 16:16:45
【问题描述】:
我知道将对象添加到集合中可以通过
Dim ItemList As Collection
Set ItemList = New Collection
Dim Item As New CItem
Set Shoe = New CItem
With Shoe
.Quantity
.IDNumber
.Description
End With
ItemList.Add Shoe
Set Bag = New CItem
With Bag
.Quantity
.IDNumber
.Description
End With
ItemList.Add Bag
我可以调用我想使用的数据,例如 (Cost = Bag.Quantity * 2)
但是我的问题是我的项目列表将是用户定义的。有没有办法将可变数量的对象添加到集合中,并且仍然能够通过项目名称检索单个数据?
例如,给我一个物品清单:鞋、包、太阳镜、裤子
我想编写一个 for 循环来读取“Item”类下的所有这些对象,但仍然能够计算(xyz = Sunglasses.Quantity + Pants.Quantity - Bag.Quantity)。我尝试使用计数器,但它似乎只接受常量表达式。
这可能吗?如果是这样,我将不胜感激帮助找出如何做到这一点。
【问题讨论】:
-
我不是 VBA 中 OOP 方面的专家,所以我不确定名称是否会检索,但您可以创建一个
Item类并定义一个Type属性来执行此操作(除非您的项目彼此相差太大,然后在属性中可能会很混乱)