View Single Post
  #3   Report Post  
Posted to microsoft.public.excel.programming
Otto Moehrbach Otto Moehrbach is offline
external usenet poster
 
Posts: 1,090
Default Working with an array

Thanks Dave. You've come through again. Otto
"Dave Peterson" wrote in message
...
Put a watch on TheArray and step through your code.

When I did it, assigning the array redimmed TheArray(0 to 2).

If I added "option base 1", it redimmed it again, but started at 1 (much
like
not redimming it at all):

Option Base 1
Sub MacroOne()
Dim c as long
ReDim TheArray(1 To 3)
TheArray = Array("One", "Two", "Three")
For c = 1 To UBound(TheArray)
MsgBox TheArray(c)
Next
End Sub

But I think I'd just use:

Sub MacroOneA()
Dim c as long
Dim TheArray as Variant
TheArray = Array("One", "Two", "Three")
For c = lbound(TheArray) To UBound(TheArray)
MsgBox TheArray(c)
Next
End Sub

And never have to worry about it again.

Otto Moehrbach wrote:

Excel 2002, WinXP
The MsgBox in this simple macro produces Two, Three in turn. It skips
the
One.
But if I change the "1" in the For statement to a "0", I get One, Two,
Three.
Why does this happen?
Thanks for your help. Otto

Public TheArray() As Variant
Dim c As Long

Sub MacroOne()
ReDim TheArray(1 To 3)
TheArray = Array("One", "Two", "Three")
For c = 1 To UBound(TheArray)
MsgBox TheArray(c)
Next
End Sub


--

Dave Peterson