Is there a simple way in VBA to clear an array of all values?
Printable View
Is there a simple way in VBA to clear an array of all values?
Redim with no preserve keyword?
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?Quote:
Originally Posted by xld
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.Quote:
Originally Posted by Cyberdude
[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.
Code:' 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.