我所拥有的是一列,我在其中使用了匹配函数来生成找到值的位置。所以该列中的每个单元格都会有一个位置值。前任。3, 4, 5, #N/A, 7, 8, etc. 保存一些带有“#N/A”值的单元格。
我的目标是生成一个包含这些缺失集合值的集合。例如,根据上面的示例,我的集合将具有值“6”。我目前的方法是用所有可能的位置填充一个集合,然后循环遍历列并根据列单元格的值删除。
Dim arrPos As New Collection
Dim bottomRow, matchRow As Long
bottomRow = Range("A" & Rows.Count).End(xlUp).Row
matchRow = Range("C" & Rows.Count).End(xlUp).Row
' fill collection
For i = 3 To bottomRow
arrPos.Add i
Next i
' remove selects
For h = 3 To matchRow
For g = 1 To arrPos.Count
If Range("C" & h).Value = arrPos(g) Then
arrPos.Remove (g)
End If
Next g
Next h
我的问题是,我似乎无法在循环中根据索引删除。我在声明中遇到Run-time error '9': Subscript out of range
错误。If
我猜这是因为我在循环中删除并且索引不断重新排序。那么为什么问题是如何在循环中实现这些删除,或者是否有更好的方法来实现我正在尝试的内容。
请注意,这些匹配结果并非完全按照升序或降序排列。所以它实际上看起来更像“5, 8, 4, 3, 7, #N/A, etc.”