Comparing


JOIN(sourcearray [,delimiter])

You can use the JOIN to return a text string containing all the elements in an array.
This function can be used to very quickly check if two arrays are identical
This comparison method is case sensitive.

If (VBA.Join(array1, "||") = VBA.Join(array2, "||")) Then 
   MsgBox "Identical"
Else
   MsgBox "Different"
End If

Looping Through

You can loop through each array and compare each value to every value in the other array.

Public Sub Testing() 
Dim myArray1(1 To 4) As String
Dim myArray2(1 To 4) As String
Dim myArray3 As Variant

   myArray1(1) = "one1"
   myArray1(2) = "two3"
   myArray1(3) = "three5"
   myArray1(4) = "four7"

   myArray2(1) = "one1"
   myArray2(2) = "two3"
   myArray2(3) = "different"
   myArray2(4) = "four7"
   
   myArray3 = Comparing_TwoArrays(myArray1, myArray2)
   Stop
End Sub

Public Function Comparing_TwoArrays(ByVal vCheckItems As Variant, _
                                    ByVal vMasterList As Variant) _
                                    As Variant
   Dim vItemsNotInMaster As Variant
   Dim isMatch As Boolean
   Dim i As Integer
   Dim j As Integer
   Dim k As Integer
   
   ReDim vArray3(1 To UBound(vCheckItems, 1) + UBound(vMasterList, 1))
   k = 1
   
   For i = LBound(vCheckItems, 1) To UBound(vCheckItems, 1)
       isMatch = False
       
       For j = LBound(vMasterList, 1) To UBound(vMasterList, 1)
           If vCheckItems(i) = vMasterList(j) Then
               isMatch = True
               Exit For
           End If
       Next j
       
       If (isMatch = False) Then
           vItemsNotInMaster(k) = vCheckItems(i)
           k = k + 1
       End If
   Next i
   
   If (k > 1) Then
      ReDim Preserve vArray3(1 To k - 1)
   Else
      vArray3 = Empty
   End If
   
   Comparing_TwoArrays = vArray3
End Function


© 2022 Better Solutions Limited. All Rights Reserved. © 2022 Better Solutions Limited TopPrevNext