VBA ::检查从一个数组到另一个数组的值

时间:2011-06-24 06:07:18

标签: arrays vba loops

我正在尝试编写一个VBA代码,该代码交叉检查一个数组中的所有值与另一个数组(X与Y)并将值复制到新数组(如果它是重复的)(FinalResults)。到目前为止,我有以下代码,并非常感谢有关如何正确编写它的一些指导。

Function lnArray(X as Variant, Y as Variant) As Variant
Dim counter1 As Integer
Dim data As Integer
Dim FinalResults() As Variant

For counter1 = 1 To Max
    For Each data In X
        If data.Value = Y.Value Then
            counter1 = counter1 + 1
            ReDim Preserve FinalResults(counter1)
            FinalResults(counter1) = data.Value
        End If
    Next data
Next counter1
End Function

1 个答案:

答案 0 :(得分:2)

当我查看代码时,我看到的第一件事是Max既没有声明也没有初始化。即使我假设没有设置Option Explicit,这个for-next循环也会从1运行到0,这意味着根本没有循环。我猜那不是你想要的吗?

其次,你的FinalResult数组在这个函数中是本地声明的,因此不能将任何类型的结果值返回给调用函数。