Option Explicit
Option Base 1
Function CompareALL(FirstOne, SecondOne)
Application.Volatile
Dim X, Y, Found As Integer
Dim ITz As String
Dim Count1, Count2, Len1, Len2 As Integer
Dim DidFnd As Variant
Dim Array1(20), Array2(20), Array3(20, 2), Array4(20, 2) As Variant
Dim Position1, Position2 As Integer
Dim Texts1, Texts2 As String
Let Len1 = Len(FirstOne)
Let Len2 = Len(SecondOne)
For X = 1 To Len1
If Mid(FirstOne, X, 1) = " " Then
Count1 = Count1 + 1
End If
Next
If Count1 < 1 Then
Exit Function
End If
For X = 1 To Len2
If Mid(SecondOne, X, 1) = " " Then
Count2 = Count2 + 1
End If
Next
Let Position1 = 1
For X = 1 To Count1
Let Array1(X) = Application.Find(" ", FirstOne, Position1)
Let Position1 = Array1(X) + 1
Next
Let Position1 = 1
For X = 1 To Count2
Let Array2(X) = Application.Find(" ", SecondOne, Position1)
Let Position1 = Array2(X) + 1
Next
Texts2 = SecondOne
Position1 = 1
For X = 1 To Count2
Array3(X, 1) = Mid(Texts2, 1, Application.Find(" ", Texts2, 1) - 1)
Position1 = Len(Array3(X, 1)) + 1
Texts2 = Right(Texts2, Len(Texts2) - Position1)
Next
Array3(X, 1) = Texts2
Texts2 = FirstOne
Position1 = 1
For X = 1 To Count1
Array4(X, 1) = Mid(Texts2, 1, Application.Find(" ", Texts2, 1) - 1)
Position1 = Len(Array4(X, 1)) + 1
Texts2 = Right(Texts2, Len(Texts2) - Position1)
Next
Array4(X, 1) = Texts2
For X = 1 To Count2 + 1
Found = 0
For Y = 1 To Count1 + 1
If Array3(X, 1) = Array4(Y, 1) Then
Found = 1
Exit For
End If
Next
If Found = 0 Then
If Len(ITz) = 0 Then
Let ITz = Array3(X, 1)
Else
Let ITz = ITz & " " & Array3(X, 1)
End If
End If
Next
Let CompareALL = ITz
End Function