我们可以使用Dictionary对象来查找两个VBA数组的交集。
以下是代码示例:
Sub FindIntersection()
Dim arr1() As Integer
Dim arr2() As Integer
Dim dict As Object
Dim element As Variant
Dim commonElements() As Integer
Dim i As Integer
'初始化两个数组'
arr1 = Array(1, 2, 3, 4, 5)
arr2 = Array(3, 4, 5, 6, 7)
'初始化字典对象'
Set dict = CreateObject("Scripting.Dictionary")
'将元素添加到字典中'
For i = LBound(arr1) To UBound(arr1)
dict(arr1(i)) = True
Next i
'寻找两个数组的交集'
For i = LBound(arr2) To UBound(arr2)
If dict.Exists(arr2(i)) Then
ReDim Preserve commonElements(UBound(commonElements) + 1)
commonElements(UBound(commonElements)) = arr2(i)
End If
Next i
'输出交集元素'
For Each element In commonElements
Debug.Print element
Next element
End Sub
在此示例中,我们创建了两个数组arr1和arr2,然后使用Scripting.Dictionary创建了一个字典对象。接下来,我们将arr1数组中的元素添加到字典中。然后,我们遍历arr2数组,并检查元素是否存在于字典中。如果是,则将该元素添加到commonElements数组中。最后,我们打印出所有的交集元素。
此方法可应用于任意类型的VBA数组。