VBA迭代通过具有2列的变体

时间:2014-07-24 07:19:42

标签: excel vba excel-vba

正在寻找一段时间,却找不到合适的答案。我正在研究一个变体,我使用了下面提供的解决方案:

http://www.mrexcel.com/forum/excel-questions/305870-eliminate-duplicated-visual-basic-applications-array.html

所以我所拥有的基本上是一个变种,然后在没有重复的情况下进行重新设计。如果您只使用工作表中的一列,它可以正常工作,因此变量变量也只有1列。

我正在处理的数据需要检查2列,而在for each循环中我只想参考第2列:

    Dim mgNames As Variant
    Range(Cells(1, "I"), Cells(Range("a1").End(xlDown).Row, "J")).Select
    mgNames = Selection
Dim myCollection As New Collection
Dim temp As Variant
On Error Resume Next
For Each temp In mgNames
    myCollection.Add Item:=temp, Key:=temp
Next temp
On Error GoTo 0
ReDim mgNames(1 To myCollection.Count)
For temp = 1 To myCollection.Count
    mgNames(temp) = myCollection(temp)
Next temp

所以部分 For Each temp在mgNames中代码获取变量中的每个值,ex mgnames(1,1)然后是mgnames(1,2),依此类推。我想对第二列进行迭代,所以从(1,2)(2,2),(3,2)...

如果有人能够提供帮助,那就太棒了

1 个答案:

答案 0 :(得分:2)

您不必使用For Each循环播放数组,您可以使用普通For,如

Dim i As Long
...
For i = LBound(mgNames,1) To Ubound(mgNames,1)
    myCollection.Add Item:=mgNames(i,2), Key:=mgNames(i,2)
Next i
...