【发布时间】:2011-06-24 06:07:17
【问题描述】:
我正在尝试编写一个 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
【问题讨论】:
-
必须保留原始数组吗?它们的尺寸是多少?
-
我觉得这个问题上的million variations 已经在 SO 上得到了回答。你不能在其中任何一个身上找到灵感吗?大多数问题都是关于保留唯一值,而您想做相反的事情,即保留非唯一值。通过在某处添加一个合适的
Not,上面链接的任何解决方案都可以适应你想要的。