ReDim Preserve only works to modify the last index of a multi dimensional array.

You might try something like this, note that Arr3 is initially dim as a transpose of arr1 and arr2.

Dim keyColumn As Variant
Dim Pointer As Long, i As Long

keyColumn = Application.Index(arr1, 0, 2)

ReDim arr3(1 To 2, 1 To (UBound(arr1, 1) + UBound(arr2, 1)))

For i = 1 To UBound(arr2, 1)
    If IsNumeric(Application.Match(arr2(i, 2), keyColumn, 0)) Then
        Pointer = Pointer + 1
        arr3(1, Pointer) = arr2(i, 1)
        arr3(2, Pointer) = arr2(i, 2)
    End If
Next i

ReDim Preserve arr3(1 To 2, 1 To Pointer)

arr3 = Application.Transpose(arr3)