我知道可以通过以下方式将对象添加到集合中

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

我将能够调用我想要使用的数据(成本 = Bag.Quantity * 2)

但是我的问题是我的项目列表将由用户定义。有没有办法将可变数量的对象添加到集合中,并且仍然能够通过项目名称检索单个数据?

例如,给我一个物品 list :鞋、包、太阳镜、裤子

我想编写一个 for 循环来读取类“Item”下的所有这些对象,但仍然能够计算(xyz = Sunglasses.Quantity + Pants.Quantity - Bag.Quantity)。我曾尝试使用计数器,但它似乎只接受常量表达式。

这可能吗?如果是这样,我将不胜感激帮助找出如何做到这一点。

最佳答案

您可以使用键将项目添加到集合中:

ItemList.Add Shoe, "Shoe"

然后通过指定这个键来检索它:
Dim Shoe As CItem
Set Shoe = ItemList.Item("Shoe")

关于vba - 将可变数量的对象添加到集合中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31535176/

10-12 21:18