Excel VBA循环使用属于一个集合的值

Excel VBA允许循环属于某个给定集合的索引值吗?

例如,我们可以做些什么吗?

Sub testloop() k = 1 For j in {30042, 2300023, 1003044} Range("A" & k).Select With Selection.Interior .Color = j End With k = k + 1 Next j End Sub 

现在我正在使用数组来完成相同的操作

 Sub testloop() Dim IndexArray(3) As Variant For k = 1 To 3 IndexArray(k) = Int((10000000 - 39000 + 1) * Rnd + 39000) Next k For j = 1 To UBound(IndexArray) Range("A" & j).Select With Selection.Interior .Color = IndexArray(j) End With Next j End Sub 

因此,这将根据存储在集合IndexArray中的随机整数值在单元格A1,A2和A3中生成颜色。 有没有更好的方式循环到一些索引值而不是将它们存储在数组中?

编辑

继Simoco的解决scheme之后,我这样做了:

 Sub testloop() Dim IndexArray(2) As Variant For k = 0 To 2 IndexArray(k) = Int((10000000 - 39000 + 1) * Rnd + 39000) Next k kk = 70 For j = 0 To UBound(IndexArray) Range("A" & kk).Select With Selection.Interior .Color = IndexArray(j) End With kk = kk + 1 Next j For Each j In IndexArray Range("A" & kk).Select With Selection.Interior .Color = j End With kk = kk + 1 Next j End Sub 

它完美的作品!

在这里输入图像说明

你可以使用这样的东西:

 Sub testloop() k = 1 For Each j In Array(30042, 2300023, 1003044) Range("A" & k).Select With Selection.Interior .Color = j End With k = k + 1 Next j End Sub