Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2,646
Default is array redimmed?

Hi All.

I want to use a one dimension dynamic array, so my declaration is:

Dim myarray()

Redim myarray(x) changes it to a real array.
But how can I determine the state of myarray when it was not redimmed yet .

Thanks,
Stefi

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 8,520
Default is array redimmed?

Dear Stefi

May be you can check the number of dimensions using the below proc. and if
it is 0 you can Redim...

Dim myarray()
If GetNumberOfDimensions(myarray) = 0 Then
ReDim myarray(10)
End If


Function GetNumberOfDimensions(arrTemp) As Long
On Error GoTo ErrHandler
Do
intTemp = intTemp + 1
ErrorCheck = UBound(arrTemp, intTemp)
Loop
ErrHandler:
GetNumberOfDimensions = intTemp - 1
End Function


If this post helps click Yes
---------------
Jacob Skaria


"Stefi" wrote:

The problem is that ISArray() returns TRUE either after Dim myarray() or
Redim Preserve myarray(x). I want to determine that Redim Preserve
myarray(x) has already been issued or not.

Thanks,
Stefi


€˛Jacob Skaria€¯ ezt Ć*rta:

ISArray() will return TRUE

Dim myArray()
Msgbox IsArray(myArray)

If this post helps click Yes
---------------
Jacob Skaria


"Stefi" wrote:

Hi All.

I want to use a one dimension dynamic array, so my declaration is:

Dim myarray()

Redim myarray(x) changes it to a real array.
But how can I determine the state of myarray when it was not redimmed yet .

Thanks,
Stefi

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 8,520
Default is array redimmed?

Please refer

http://support.microsoft.com/kb/152288

If this post helps click Yes
---------------
Jacob Skaria


"Jacob Skaria" wrote:

Dear Stefi

May be you can check the number of dimensions using the below proc. and if
it is 0 you can Redim...

Dim myarray()
If GetNumberOfDimensions(myarray) = 0 Then
ReDim myarray(10)
End If


Function GetNumberOfDimensions(arrTemp) As Long
On Error GoTo ErrHandler
Do
intTemp = intTemp + 1
ErrorCheck = UBound(arrTemp, intTemp)
Loop
ErrHandler:
GetNumberOfDimensions = intTemp - 1
End Function


If this post helps click Yes
---------------
Jacob Skaria


"Stefi" wrote:

The problem is that ISArray() returns TRUE either after Dim myarray() or
Redim Preserve myarray(x). I want to determine that Redim Preserve
myarray(x) has already been issued or not.

Thanks,
Stefi


€˛Jacob Skaria€¯ ezt Ć*rta:

ISArray() will return TRUE

Dim myArray()
Msgbox IsArray(myArray)

If this post helps click Yes
---------------
Jacob Skaria


"Stefi" wrote:

Hi All.

I want to use a one dimension dynamic array, so my declaration is:

Dim myarray()

Redim myarray(x) changes it to a real array.
But how can I determine the state of myarray when it was not redimmed yet .

Thanks,
Stefi

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 9,101
Default is array redimmed?

the problem with the REDIM() statemtn it is may create an extra item in the
array. For example
Redim A(5) really create 6 items 0 to 5.

If you specfiy
Redim(0 to 4) this will create only 5 items

Also use Preserve so you don't loose you old items after redim

Redim Preserve A(5)

I would test if the array already exits bu use a counter to keep track of
the number of items or use UBOUND to get the upper limits of the array.

You could also make the array size 1 at the beginning of the code
Dim A as variant
Redim A(0 to 0)


"Joel" wrote:

Redim doesn't change the variable to a real array it creates a second
variable with the same name as an array.

You should declare the variable as a variant so you don't have two variables
with the same name

from
Dim myArray()

to
Dim MyArray as Variant 'note - no parenthesis



"Jacob Skaria" wrote:

ISArray() will return TRUE

Dim myArray()
Msgbox IsArray(myArray)

If this post helps click Yes
---------------
Jacob Skaria


"Stefi" wrote:

Hi All.

I want to use a one dimension dynamic array, so my declaration is:

Dim myarray()

Redim myarray(x) changes it to a real array.
But how can I determine the state of myarray when it was not redimmed yet .

Thanks,
Stefi

  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 12
Default is array redimmed?

On May 28, 11:54*am, Stefi wrote:

Redim myarray(x) changes it to a real array.
But how can I determine the state of myarray when it was not redimmed yet


  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,934
Default is array redimmed?

You might get a more useful answer if you told us what it is you are trying
to do (that is, why are you trying to check the state of MyArray and what
will you do when you find out).

--
Rick (MVP - Excel)


"Stefi" wrote in message
...
Hi All.

I want to use a one dimension dynamic array, so my declaration is:

Dim myarray()

Redim myarray(x) changes it to a real array.
But how can I determine the state of myarray when it was not redimmed yet
.

Thanks,
Stefi


Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
is array redimmed? Jacob Skaria Excel Programming 2 May 28th 09 12:15 PM
Prevent cell/array references from changing when altering/moving thecell/array nme Excel Discussion (Misc queries) 1 September 19th 08 01:53 PM
Redimming an array dynamically assigned from range (how to redim first dimension of a 2-D array? /or/ reverse the original array order) Keith R[_2_] Excel Programming 3 November 13th 07 04:08 PM
meaning of : IF(Switch; Average(array A, array B); array A) DXAT Excel Worksheet Functions 1 October 24th 06 06:11 PM
Array problem: Key words-Variant Array, single-element, type mismatch error davidm Excel Programming 6 November 9th 05 05:54 AM


All times are GMT +1. The time now is 10:06 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"