View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
Dave D-C[_3_] Dave D-C[_3_] is offline
external usenet poster
 
Posts: 176
Default Nesting Collections

Does this work for you?
It works for me (XL97/WIN98)

Class Module clsSample:
Public Name As String
Public SampleType As String
Public Elements As Collection

Sub Main()
'Dim Sample As Sample ' you should be shot!
Dim Sample As clsSample, Samples As Collection
Dim zFile, i1%, s1$

Set Samples = New Collection

For Each zFile In Array("One", "Two")
Debug.Print "--Building " & zFile
Set Sample = New clsSample
Sample.Name = (zFile & "Name")
Set Sample.Elements = New Collection
Sample.Elements.Add "Alpha", "AlphaKey"
Sample.Elements.Add "Beta", "BetaKey"
Debug.Print Sample.Elements("AlphaKey")
Debug.Print Sample.Elements("BetaKey")
Samples.Add Sample ' without a key
s1 = Samples(1).Name ' by index, ok
's1 = Samples(s1).Name ' by key, ng
Next zFile

For Each Sample In Samples
Debug.Print "--" & Sample.Name
Debug.Print Sample.Elements.Count
Debug.Print Sample.Elements("AlphaKey")
Debug.Print Sample.Elements("BetaKey")
Debug.Print Sample.Elements(1)
Debug.Print Sample.Elements(2)
Next Sample
End Sub ' D-C Dave

wrote:
I keep coming across situations where it would be really useful to
create collections within collections, but I just can't quite work it
out. Here's the closest I've gotten: I have a class module called
Sample, with the following public variables (among others):
Name as string
SampleType as string
Elements as collection

in my main sub:

dim Sample as Sample
dim Samples as collection

set Samples = new collection

for each File in application.filesearch.foundfiles
set Sample = new sample
set Sample.Elements = new collection
Sample.Name = (somevalue)
for i = 1 to 10
Sample.Elements.add (somevalue, somekey & i)
next i
debug.print sample.elements(somekey) 'OK so far
samples.add Sample '(with Sample.Name as key)
Next File

For each Sample in Samples
debug.print Sample.Name 'Works
debug.print sample.elements.count 'Works
debug.print Sample.Elements(somekey1)
'Gives Error '424' Object Required
debug.print Sample.elements(1) 'gives error also
Next Sample

Anyone out there know the proper way to nest collections or an elegant
alternate? Thanks! -Lisa



----== Posted via Newsfeeds.Com - Unlimited-Unrestricted-Secure Usenet News==----
http://www.newsfeeds.com The #1 Newsgroup Service in the World! 120,000+ Newsgroups
----= East and West-Coast Server Farms - Total Privacy via Encryption =----