【发布时间】:2022-11-17 16:43:30
【问题描述】:
从vba中的数组中间删除一个项目
我正在遍历两个数组以查找 Arr1 中的哪一项等于 Arr2。 然后我想从 Arr1 中删除该项目。最后,我会将 Arr1 添加到 Arr2。 所以,它以某种方式检测 Arr1 是否有不在 Arr2 中的新项目,并将该项目添加到 Arr2
Public Sub cmpArr()
For i =LBound(Arr1) To UBound(Arr2)
For j = LBound(Arr2) To UBound(Arr2)
If Arr1(i) = Arr2(j) Then
'Arr1(i) delete
End If
Next j
Next i
End Sub
【问题讨论】:
-
它必须是一个数组吗?这不是创建唯一项目列表的最佳方式。你试过Scripting Dictionary吗?
-
或者,您可以查看ReDim Preserve,但它速度慢且更复杂。
-
另一种选择是 Collection
-
我推荐字典,因为您可以轻松检查它是否已经是成员,完成后,您可以轻松引用其键数组。 (所以有你的阵列)
-
是的,我认为按键删除是我在数组中所需要的。我会将我的数组更改为字典
标签: arrays vba duplicates