我有一个包含多个重复项的数组。我正在尝试编写代码,生成第二个数组,其中包含第一个数组中与查找值相等的所有元素的索引。
例如,我有这个数组:
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's
答案 0 :(得分:1)
一些非常简单的代码可能比简明扼要的方法更能帮助您。
说明: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