Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Why the.. does this not work???
Well, in the working case you are simply redimensioning myArr once to 6
or 7 "rows" and 1 "column"--what's the "Preserve about? The array has not been loaded, so there's nothing to preserve. In the non working case, it should work in the first loop to dimension the array to 1 "row" and 1 "column"; but in the next loop (with i=1) the code is attempting to change the bound of the first dimension; the bound of only the last dimension can be changed with the Preserve keyword in effect. Alan Beban Stefan Lewold wrote: 'Why is it that the rutine below works when MyArr is ReDimensioned outside the loop and not within 'the loop as in the Sub 'DoesNotWork()' ? Dim MyArr() As Variant Dim Nms As Variant Sub Working() Nms = Array("Joe", "John", "Mary", "Fred", "Stu", "Dan", "Steeffe") ReDim Preserve MyArr(UBound(Nms), 1) As Variant For i = 0 To UBound(Nms) MyArr(i, 0) = CStr(i) MyArr(i, 1) = Nms(i) Next i End Sub Sub DoesNotWork() Nms = Array("Joe", "John", "Mary", "Fred", "Stu", "Dan", "Steeffe") For i = 0 To UBound(Nms) ReDim Preserve MyArr(i, 1) As Variant MyArr(i, 0) = CStr(i) MyArr(i, 1) = Nms(i) Next i End Sub |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Why the.. does this not work???
Good catch Alan. He could just flip the array indices - and it appears
that he is obviously already option base 0. On Wed, 27 Aug 2003 23:56:40 -0700, Alan Beban wrote: Well, in the working case you are simply redimensioning myArr once to 6 or 7 "rows" and 1 "column"--what's the "Preserve about? The array has not been loaded, so there's nothing to preserve. In the non working case, it should work in the first loop to dimension the array to 1 "row" and 1 "column"; but in the next loop (with i=1) the code is attempting to change the bound of the first dimension; the bound of only the last dimension can be changed with the Preserve keyword in effect. Alan Beban Stefan Lewold wrote: 'Why is it that the rutine below works when MyArr is ReDimensioned outside the loop and not within 'the loop as in the Sub 'DoesNotWork()' ? Dim MyArr() As Variant Dim Nms As Variant Sub Working() Nms = Array("Joe", "John", "Mary", "Fred", "Stu", "Dan", "Steeffe") ReDim Preserve MyArr(UBound(Nms), 1) As Variant For i = 0 To UBound(Nms) MyArr(i, 0) = CStr(i) MyArr(i, 1) = Nms(i) Next i End Sub Sub DoesNotWork() Nms = Array("Joe", "John", "Mary", "Fred", "Stu", "Dan", "Steeffe") For i = 0 To UBound(Nms) ReDim Preserve MyArr(i, 1) As Variant MyArr(i, 0) = CStr(i) MyArr(i, 1) = Nms(i) Next i End Sub |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Macro to update a column in a work based on another work sheet | New Users to Excel | |||
how can i automatically generate work order numbers from work orde | Excel Discussion (Misc queries) | |||
flash object dont work in my excel work sheet | Excel Discussion (Misc queries) | |||
Counting dates in multiple work sheets and work books | Excel Discussion (Misc queries) | |||
Is there away to keep "auto save" from jumping to the first work sheet in the work book? | New Users to Excel |