Thread: Store array ???
View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.worksheet.functions
joel joel is offline
external usenet poster
 
Posts: 9,101
Default Store array ???

In a module put this code

Sub test()

Set ArrayClass = New Class1

For i = ArrayClass.lower To ArrayClass.upper
ArrayClass.WriteArray i, i
Next i

For i = ArrayClass.lower To ArrayClass.upper
msgbox(ArrayClass.ReadArray(i))
Next i


End Sub


Insert a Class module. the first one will be Class1 which is in the above
sub in the New statement. Must be the same

Insert this code into class1module

Dim MyArray As Variant
Public lower As Long
Public upper As Long

Private Sub Class_Initialize()
ReDim MyArray(100)

lower = LBound(MyArray)
upper = UBound(MyArray)
End Sub
Public Sub WriteArray(i, a)

MyArray(i) = a

End Sub
Public Function ReadArray(i)

ReadArray = MyArray(i)

End Function



"piero" wrote:



"Joel" wrote:

the only way VBA saves code between execution is using class modules or
userform (which is a class module). Create a class module or userform with
only the array delcared in the module as public. The array doesn't even have
to be in a subroutine or function. Then from your main routine create a new
version of the class module to create the array.


Thank you
If I have understood correctly I just create a class module with the array
declared as public?
If so how do I run the procedure and transfer the data from the standard
module to the class module array?
I am grateful for the cooperation