我正在尝试编写一个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
答案 0 :(得分:2)
当我查看代码时,我看到的第一件事是Max
既没有声明也没有初始化。即使我假设没有设置Option Explicit
,这个for-next循环也会从1运行到0,这意味着根本没有循环。我猜那不是你想要的吗?
其次,你的FinalResult
数组在这个函数中是本地声明的,因此不能将任何类型的结果值返回给调用函数。