View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
Alan Beban[_2_] Alan Beban[_2_] is offline
external usenet poster
 
Posts: 783
Default Add value to array based on if...then output in VBA

If speed of execution is an issue, one might want to remove the ReDim
Preserve from the loop:

Sub BBB()
Dim ar1(1 To 10), ar2(1 To 10), ar3()
'ReDim ar3(1 To 1)
ReDim ar3(1 To 10)
j = 0
For i = 1 To 10
ar1(i) = Int(Rnd() * 25 - 8)
ar2(i) = i * i
If ar1(i) 1 And ar1(i) < 10 Then
j = j + 1
'ReDim Preserve ar3(1 To j)
ar3(j) = ar2(i)
End If
Next
ReDim Preserve ar3(1 To j)
For i = 1 To j
Debug.Print ar3(i)
Next
End Sub


Tom Ogilvy wrote:

As an example:

store values from ar2 in ar3 if ar1 is 1 and < 10

Sub BBB()
Dim ar1(1 To 10), ar2(1 To 10), ar3()
ReDim ar3(1 To 1)
j = 0
For i = 1 To 10
ar1(i) = Int(Rnd() * 25 - 8)
ar2(i) = i * i
If ar1(i) 1 And ar1(i) < 10 Then
j = j + 1
ReDim Preserve ar3(1 To j)
ar3(j) = ar2(i)
End If
Next
For i = 1 To j
Debug.Print ar3(i)
Next

End Sub