我有一个有多个重复项的数组。 我正在尝试编写代码,该代码将生成第二个数组,该数组包含第一个数组中等于查找值的所有元素的索引。
例如,我有这个数组:
1
1
1
2
2
2
2
2
3
3
4
5
6
6
7
我想要第二个数组,它将返回数字 6 的索引。
这是我现在拥有的代码。
Sub test()
Dim look_up As Integer
Dim id_ar As Variant
Dim index_ar As Variant
look_up = 6
id_ar = Range("A1:A16").Value
index_ar = Application.Match(id_ar, look_up, True)
End Sub
我希望这会产生这样的数组:
13
14
但它只是返回一堆"#N/A">
一些非常简单的代码可能比简短的方法更能帮助你。
定义 : arrOut 是您想要的输出,rngLookup 是你的数字 6 和任何其他数字所在的位置。 rngDB 是您要搜索查找值索引的位置。
Option Explicit
Sub dupes()
Dim rngLookup, rngDB As Range
Dim i, j As Variant
Dim arrOut As New Collection
Set rngLookup = Worksheets("Sheet1").Range("B1")
Set rngDB = Worksheets("Sheet1").Range("A1:A14")
Dim counter As Integer
counter = 0
For Each i In rngLookup
For Each j In rngDB
counter = counter + 1
If j.Value = i.Value Then
arrOut.Add Item:=CInt(counter)
Else
End If
Next j
Next i
End Sub