Erase Arrays

A

adriant42

Hi:


I have 20 or so module-level arrays that I want to Erase after eac
calling. My current code follows:


Module A
-----------------------

Private Array1() as Integer, _
Array2() as Long, _
Array3() as Double, _
:
:
Array20() as Integer


Public Sub Sub1()
....Code
End Sub

Public Sub EraseArray()
Erase Array1
Erase Array2
:
:
Erase Array20
End Sub

-------------------------------

Module B
------------------------

Sub Sub2()
Dim i as Integer

For i = 1 to 3
Sub1
EraseArray
Next i

End Sub

-------------------------------------


I use EraseArray to make sure that the new run doesn't retain any ol
values. My question is there a way to reset my module-level arra
without actually typing all 20 or so arrays like what I did in my Su
EraseArray()



Regards,
Adrian
 
C

Chip Pearson

I don't think there is any way to use a loop to erase your
arrays. You'll have to explicitly erase each one.


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com
 
B

Bob Kilmer

I don't know if you consider this any better, but you could create a
collection of your arrays and loop thru the collection.

Option Explicit
Private mcolArrays As Collection

Sub Main()
Set mcolArrays = New Collection
Dim Array1(1) As Integer
Dim Array2(1) As Integer
Dim Array3(1) As Integer
Dim Array4(1) As Integer
Array1(0) = 1
Array1(1) = 2
mcolArrays.Add Array1
mcolArrays.Add Array2
mcolArrays.Add Array3
mcolArrays.Add Array4
EraseArrays
End Sub

Public Sub EraseArrays()
Dim v As Variant
For Each v In mcolArrays
Erase v
Next v
End Sub
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top