Thread: Array Question
View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Tom Ogilvy Tom Ogilvy is offline
external usenet poster
 
Posts: 27,285
Default Array Question

Sub Testing2()
Dim X(1 To 8) As Long
Dim i As Long
Dim Element As Variant

For i = LBound(X) To UBound(X)
X(i) = Rnd * 10000
Next

For Each Element In X
Debug.Print Element
Next
End Sub

works, but I can't say why it doesn't work for assignment. I do know I have
seen an MS KB article that advises against using For ... Each with an array.
Maybe this is why.

Generally, I find it is easier to use what works than to wonder why.

--
Regards,
Tom Ogilvy

"Frederick Chow" wrote in message
...
Hi all,

I have a problem about looping arrays. Consider the following program:

Sub Testing2()
Dim X(1 To 8) As Long
Dim i As Long
For i = LBound(X) To UBound(X)
X(i) = Rnd * 10000
Next

X will contain the random number as expected. However if I use FOR EACH
loop,

Sub Testing2()
Dim X(1 To 8) As Long
Dim Element As Variant
For Each Element in X
Element = Rnd * 10000
Next

Then the each array element still contains 0! Why is that? Please advise.

Frederick Chow
Hong Kong.