ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Erase Arrays (https://www.excelbanter.com/excel-programming/306920-erase-arrays.html)

adriant42[_2_]

Erase Arrays
 
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

--
Message posted from http://www.ExcelForum.com


Chip Pearson

Erase Arrays
 
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


"adriant42 " wrote in
message ...
Hi:


I have 20 or so module-level arrays that I want to Erase after

each
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 old
values. My question is there a way to reset my module-level

array
without actually typing all 20 or so arrays like what I did in

my Sub
EraseArray()



Regards,
Adrian T


---
Message posted from http://www.ExcelForum.com/




Bob Kilmer

Erase Arrays
 
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


"adriant42 " wrote in message
...
Hi:


I have 20 or so module-level arrays that I want to Erase after each
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 old
values. My question is there a way to reset my module-level array
without actually typing all 20 or so arrays like what I did in my Sub
EraseArray()



Regards,
Adrian T


---
Message posted from http://www.ExcelForum.com/





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

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com