首先,道歉,这是我的第一篇文章,因此我可能没有使用最佳实践。引用钥匙集合中的对象
我在写一个使用VBA for Excel的应用程序。
我创建了一个Class,然后安装了该Class的几个对象并将它们添加到Collection中。然后,我将Collection添加到另一个集合中,并重复该过程,以便我最终得到同一个类的对象集合集合,就像我想的层次结构。
每当我添加到一个集合,我创建一个密钥来唯一标识我添加的东西。我现在想用键来引用“层次结构”中的特定对象。
下面的伪代码有希望地解释了创建对象的过程,添加到一个新的集合,然后将集合添加到一个新的集合(注意为了简单起见,我只添加了一个对象,从而导致一个分支层次结构,而我的实际代码将多个对象添加到多个集合中)。
Public Element As CElement
Public InsideCollection As Collection
Public OutsideCollection As Collection
Sub Main()
Set Element = New CElement
Set InsideCollection = New Collection
Set OutsideCollection = New Collection
Element.Field1 = "blah1"
Element.Field2 = "blah2"
InsideCollection.Add Element, Element.Field1
OutsideCollection.Add InsideCollection, "ABCD"
End Sub
现在,我已经加载这个数据变成了一种层次结构的,我怎么没有获得通过寻找正确的所有元素循环在最低级别的访问特定的元素?我还以为我可以做线沿线的东西:
OutsideCollection("ABCD").InsideCollection("blah1").Field2
或
OutsideCollection.InsideCollection("blah1").Field2
但他们给这个错误:
Run-time error '438': Object doesn't support this property or method
我也试图与上述通过整数值引用元素,例如。
OutsideCollection(1).InsideCollection(1).Field2
但是得到相同的错误。
任何想法?
干杯,克里斯
出色的工作simoco - 感谢这么多 – user3436085