返回主数组中匹配值的索引数组

我有一个数组与多个重复。 我试图编写代码,将产生第二个数组,其中包含第一个数组中的所有元素的索引等于查找值。

例如,我有这个数组:

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