PDA

View Full Version : [SOLVED:] How to Clear an Array



Cyberdude
08-19-2005, 10:50 AM
Is there a simple way in VBA to clear an array of all values?

Tommy
08-19-2005, 10:53 AM
Redim with no preserve keyword?

Bob Phillips
08-19-2005, 10:56 AM
Erase myArray

It not only removes values, if it is a dynamic array, it releases it which means that it has no bounds.

Cyberdude
08-19-2005, 11:16 AM
Erase myArray

It not only removes values, if it is a dynamic array, it releases it which means that it has no bounds.

Does that mean I would have to ReDim it? What are the consequences of the erase? Can I still use it?

Reset. I looked it up in Help. Thanx.

MWE
08-20-2005, 11:16 AM
Does that mean I would have to ReDim it? What are the consequences of the erase? Can I still use it?

Reset. I looked it up in Help. Thanx.
The impact depends on what type of array is being erased. VBA help does a pretty good job explaining what happens with its example. You can still use "fixed" arrays as before. You will need to redim dynamic arrays to reallocate space.

[from VBA Help]
Erase Statement Example

This example uses the Erase statement to reinitialize the elements of fixed-size arrays and deallocate dynamic-array storage space.


' Declare array variables.
Dim NumArray(10) As Integer ' Integer array.
Dim StrVarArray(10) As String ' Variable-string array.
Dim StrFixArray(10) As String * 10 ' Fixed-string array.
Dim VarArray(10) As Variant ' Variant array.
Dim DynamicArray() As Integer ' Dynamic array.
ReDim DynamicArray(10) ' Allocate storage space.
Erase NumArray ' Each element set to 0.
Erase StrVarArray ' Each element set to zero-length
' string ("").
Erase StrFixArray ' Each element set to 0.
Erase VarArray ' Each element set to Empty.
Erase DynamicArray ' Free memory used by array.