1
Excel VBA는 주어진 집합에 속한 인덱스 값에 대한 루핑을 허용합니까?집합에 속한 값을 가진 Excel VBA 루프
예를 들어, 우리는 내가 같은
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
그래서이 기반 세포에서 A1, A2 및 A3를 색상을내는 달성하기 위해 배열을 사용하고 지금
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
처럼 뭔가를 할 수있다 집합 IndexArray에 저장된 임의의 정수 값에 대해 배열에 저장하는 것이 아니라 인덱스 값 집합으로 루프하는 더 좋은 방법이 있습니까? Simoco의 솔루션에 따라
편집
, 나는이 한 :
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
을하고 그것을 완벽하게 작동합니다!
감사합니다! 제 편집문을 보시고 어쩌면 제가 왜 두 번째 루프에서 여분의 검은 색을 얻고 있는지 볼 수있게 도와 주시겠습니까? – Amatya
실제로 배열에는 4 개의 요소가 있습니다. 'Dim IndexArray (3) As Variant'를 선언하면 0에서 3까지의 차원을 가진 배열을 얻게되고'IndexArray (0)'을 정의하지 않았으므로 기본적으로 0과 같습니다. –
오, 고마워 ... 그래서 만약 내가 큰 배열 집합을 가지고 그들 모두를 나열하고 싶지 않았어 : IndexArray (....... 매우 긴 ...), 할 수 있습니다 : IndexArray 각 In j = 0을 제외하고? 오, 오케이 .. 0부터 2까지 내 색인을 정의하십시오. 알았어요. – Amatya