Copie los valores de una colección a una matriz 2D en VBA

Parece que estoy golpeando mi frente contra la pared de ladrillo proverbial. Tengo un bucle que se ejecuta y rellena una colección. Hay aproximadamente 20000 filas y 11 columnas. Necesito poder obtener el contenido de la colección en una matriz variante para poder hacer una copia masiva a una hoja de cálculo. La razón por la que estaba usando una colección es para la deduplicación inherente de las entradas.

Por favor, ¿podría alguien ofrecer una sugerencia sobre cómo lograr esto? Supongo que me estoy perdiendo algo sencillo, pero si no uso una colección, necesito deduplicar 200k + filas.

Gracias de antemano por su ayuda

EDITAR

Aquí está el código real. Como mencioné anteriormente, el problema no es ingresar los datos en la colección (MyCollection), ¡es volver a divulgarlos!

EDITAR

El flujo de datos se inicia en una hoja de cálculo que luego se copia en una matriz llamada ArrayOrg. La matriz está en bucle y, cuando se cumplen ciertas condiciones, se agrega un registro a la matriz ArrayOrg1. Por favor, consulte el código de abajo.

    For intI = 1 To UBound(ArrayOrg())
            If ArrayOrg(intI, 7) = "cMat" And ArrayOrg(intI, 5) = "Plant" Then

                ArrayOrg1_cMat(Org1Count_cMat, 0) = ArrayOrg(intI, 1)           'User ID
                ArrayOrg1_cMat(Org1Count_cMat, 1) = ArrayOrg(intI, 2)           'BR ID
                ArrayOrg1_cMat(Org1Count_cMat, 2) = ArrayOrg(intI, 3)           'Scenario
                ArrayOrg1_cMat(Org1Count_cMat, 3) = ArrayOrg(intI, 4)           'Role
                ArrayOrg1_cMat(Org1Count_cMat, 4) = ArrayOrg(intI, 5)           'Controlling Field
                ArrayOrg1_cMat(Org1Count_cMat, 5) = ArrayOrg(intI, 6)           'Controlling Field Value
                ArrayOrg1_cMat(Org1Count_cMat, 6) = ArrayOrg(intI, 7)           'Webapp
                Org1Count_cMat = Org1Count_cMat + 1
Next intI

Dim MyCollection As Collection
    Dim ArrayTemp() As Variant
    Set MyCollection = New Collection  

    For intI = 0 To UBound(ArrayOrg1_cMat())
        For intJ = 0 To UBound(ArrayOrg2_cMat())
                If ArrayOrg2_cMat(intJ, 0) = ArrayOrg1_cMat(intI, 0) Then
                        If ArrayOrg2_cMat(intJ, 1) = ArrayOrg1_cMat(intI, 1 Then                             If ArrayOrg2_cMat(intJ, 2) = ArrayOrg1_cMat(intI, 2) Then                                 If ArrayOrg2_cMat(intJ, 3) = ArrayOrg1_cMat(intI, 3) Then                                     

                                    ArrayTemp(0, 0) = ""                                    'Name
                                    ArrayTemp(0, 1) = ArrayOrg1_cMat(intI, 0)               'AD ID
                                    ArrayTemp(0, 2) = ""                                    'Email
                                    ArrayTemp(0, 3) = ""                                     'Requester
                                    ArrayTemp(0, 4) = ArrayOrg1_cMat(intI, 6)               'Webapp
                                    ArrayTemp(0, 5) = ArrayOrg1_cMat(intI, 2)               'Scenario
                                    ArrayTemp(0, 6) = ArrayOrg1_cMat(intI, 3)               'Role
                                    ArrayTemp(0, 7) = "PL"                                 'Business Unit
                                    ArrayTemp(0, 8) = "NONE"
                                    ArrayTemp(0, 9) = "NONE"
                                    ArrayTemp(0, 10) = "NONE"
                                    ArrayTemp(0, 11) = ArrayTemp(0, 0) & ArrayTemp(0, 1) & ArrayTemp                                              (0, 2) & ArrayTemp(0, 3) & ArrayTemp(0, 4) _
                                                      & ArrayTemp(0, 5) & ArrayTemp(0, 6) & ArrayTemp                                                 (0, 7) & ArrayTemp(0, 8) & ArrayTemp(0, 9) _
                                                      & ArrayTemp(0, 10) '### This is the key for the collection

                                    On Error Resume Next
                                    MyCollection.Add ArrayTemp, ArrayTemp(0, 11)
                                    On Error GoTo 0                                    
                                End If
                            End If
                        End If
                End If
        Next intJ
    Next intI
'#### THIS IS WHERE THE PROBLEM IS
For intI = 0 To MyCollection.Count  
    ArrayOutput(intI, 0) = MyCollection.Item(intI)  
Next intI  

Gracias kevin

Respuestas a la pregunta(1)

Su respuesta a la pregunta