Sub Test_CompareTwoArrays_UDF()
Dim arr As Variant
Dim a As Variant
Dim b As Variant
Dim i As Long
arr = Range("A1").CurrentRegion.Value
For i = LBound(arr, 1) + 1 To UBound(arr, 1)
a = Split(arr(i, 1), ",")
b = Split(arr(i, 2), ",")
arr(i, 3) = Join(CompareTwoArrays(a, b), ",")
Erase a: Erase b
Next i
Range("A1").CurrentRegion.Value = arr
End Sub
Function CompareTwoArrays(v1 As Variant, v2 As Variant)
Dim v As Variant
Dim i As Long
Dim t As Long
Dim p As Long
On Error Resume Next
ReDim v(0 To UBound(v1))
p = 0
For i = LBound(v1) To UBound(v1)
t = Application.Match(v1(i), v2, 0)
If t = 0 Then
v(p) = v1(i)
p = p + 1
Else
t = 0
End If
Next i
ReDim Preserve v(1 To p + UBound(v2))
p = p + 1
For i = LBound(v2) To UBound(v2)
t = Application.Match(v2(i), v1, 0)
If t = 0 Then
v(p) = v2(i)
p = p + 1
Else
t = 0
End If
Next i
On Error GoTo 0
CompareTwoArrays = v
End Function