2016-10-04 5 views
0

У меня есть коллекция коллекций. Внутренние коллекции содержат строковые элементы.Loop over Collection of Collections

Заполнение внутреннего Коллекция:

Function collect_excellent_Companies(ByVal folderName As String, ByVal fileName As String) As Collection 
.. 
    Do While .Cells(countGreens, 1).Interior.Color = 65280 
     myCol.Add CStr(.Cells(countGreens, 4).Value2) 
     countGreens = countGreens + 1 
    Loop 
... 
End Function 

Заполнение внешней Коллекция:

For iRow = 1 To LastRow 
    param1 = .Cells(iRow, 1).Value2 + "-Info" 
    param2 = .Cells(iRow, 1).Value2 
    fullCollection.Add collect_excellent_Companies(param1, param2) 
Next iRow 

Теперь я хочу, чтобы цикл по внешней и внутренней коллекции с

Dim sepCol As Collection 
Set sepCol = New Collection 
Dim tmpCol As Collection 
Set tmpCol = New Collection 
Dim myStr As Object 
'Loop over each competion 
For Each sepCol In myCol 
    For Each myStr In sepCol 
      tmpCol.Add myStr 
    Next myStr 
next sepCol 

Я проверил содержимое коллекции до этого цикла, и все в порядке. Я получаю ошибку в строке:

For each myStr in sepCol 

Runtime Error 424: Object necessary. Я уже изменил Dim myStr as String к D im myStr as Object, но это не помогает. Любая идея, кому я получаю эту работу, будет очень желанной!

+0

Вы должны цикл каждый элемент в коллекции, вы говорите, для каждой коллекции в моей коллекции, что логично, но что все это есть, это пункт. –

ответ

1

Я нашел решение самостоятельно.

я должен был установить

Dim myStr as Variant 
+0

Существует фиксированный период времени, когда вы не можете принять свой собственный ответ! Я думаю, что это два дня или около того. – ruedi