Q: Merging Arrays with dictionary VBA Excel I am trying to cycle through my workbook and grab record sources from worksheet(1) to populate a master table of record sources in worksheet(2) which has much more additional data on the record. If there are already populated records in worksheet(2) that are also present in worksheet(1), I want them to be left alone and not changed in worksheet(2). If there are records present in worksheet 2 that are not present in worksheet(1), I want them to be deleted from the table. 
I have most of the code working, but I am having trouble with the last FOR loop which populates a new array that I want to be used as the master table (TBL2) afterwords.
Sub RecordPopulator()
Dim dic As Object
Dim diccompare As Object

Dim MOPTable As ListObject
Dim SourceRecTable As ListObject

Dim RecMOP As Variant
Dim RecSource As Variant

Dim RecMOPtemp

Set dic = CreateObject("Scripting.Dictionary")
Set diccompare = CreateObject("Scripting.Dictionary")

Set MOPTable = Sheets("WKS1").ListObjects("TBL1")
Set SourceRecTable = Sheets("WKS2").ListObjects("TBL2")

dic.CompareMode = vbTextCompare 'non-case sensitive compare model
diccompare.CompareMode = vbTextCompare

RecSource = SourceRecTable.DataBodyRange
RecMOP = MOPTable.ListColumns("Record").DataBodyRange
RecMOPtemp = Join(Application.Transpose(RecMOP), ";")
RecMOP = Split(RecMOPtemp, ";")

For i = LBound(RecMOP) To UBound(RecMOP) 'Get all of the unique records from WKS1 records
    If RecMOP(i) = "" Then GoTo NextIteration
    If Not dic.Exists(RecMOP(i)) Then dic.Add RecMOP(i), "Barcode Req'd"
NextIteration:
Next i

For i = LBound(RecSource) To UBound(RecSource) 'Get all of the current records recorded in Source Records tab
    If RecSource(i, 2) = "" Then RecSource(i, 2) = "Barcode Req'd"
    If Not diccompare.Exists(RecSource(i, 1)) Then diccompare.Add RecSource(i, 1), RecSource(i, 2)
    'Debug.Print RecSource(i, 1)
Next i

Dim key As Variant
Dim keycompare As Variant
For Each key In dic.Keys
    For Each keycompare In diccompare.Keys 'Compares the records in Source Records to those that are present in WKS1 (Generates Master Document List)
                                           '- Used to determine if any documents that have been recorded in source records have been taken out of WKS1 as that what we are assuming is the correct document list
        If Not dic.Exists(keycompare) Then diccompare.Remove keycompare
    Next keycompare
    If Not diccompare.Exists(key) Then diccompare.Add key, dic(key)
    'Debug.Print key, diccompare(key)
Next key

Dim Rowtodelete() As Variant
Counter = 0
For i = LBound(RecSource) To UBound(RecSource) 'Compares the Source Records to the Master Document List and deletes records that are not present in it- Do not want to delete records that have additional information entered in (doc type,page count, etc.)
    If Not diccompare.Exists(RecSource(i, 1)) Then
        RecSource(i, 1) = vbNullString
        'Rowtodelete(Counter) = i
        Counter = Counter + 1
    End If
Next

Dim SourceRecords As Variant 'creates array that leaves known documents alone and adds in non-present from Master Document List
For i = 1 To diccompare.Count
    If i <= UBound(RecSource) - Counter Then
        SourceRecords(i, 1 to RecSource.Columns.Count) = RecSource(i, 1 to RecSource.Columns.Count)
    ElseIf i >= UBound(RecSource) - Counter Then
        SourceRecords(i, 1) = diccompare.Keys(i)
        SourceRecords(i, 2) = diccompare.Items(i)
    End If
Next

dic.RemoveAll 'Clears all contents of dictionary
diccompare.RemoveAll
End Sub

I know I can also Redim Preserve the RecSource array to delete the rows that are empty in RecSource(i, 1) and then add the diccompare to that array, but I am having trouble with that as well. Any help is appreciated, thanks!
I tried doing the nested for loops but I am getting "type mismatch errors now" when trying to assign SourceRecords(i, j) = RecSource(i, j)
For i = 1 To diccompare.Count
    If i <= UBound(RecSource) - Counter Then
        For j = 1 To SourceRecTable.Range.Rows.Count
            SourceRecords(i, j) = RecSource(i, j)
            'Debug.Print RecSource(i, j)
        Next
    ElseIf i >= UBound(RecSource) - Counter Then
        SourceRecords(i, 1) = diccompare.Keys(i)
        SourceRecords(i, 2) = diccompare.Items(i)
    End If
Next

