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