ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Worksheet Functions (https://www.excelbanter.com/excel-worksheet-functions/)
-   -   Store array ??? (https://www.excelbanter.com/excel-worksheet-functions/242799-store-array.html)

piero

Store array ???
 
Hello everyone,
I have a small problem: I would like to store an array in VB Excel 2007
(without using a sheet for caching).
You know tell me what instructions can I use so that when strengthened from
the application and return concourse data stored?
There sending code and thank you.

joel

Store array ???
 
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.

"piero" wrote:

Hello everyone,
I have a small problem: I would like to store an array in VB Excel 2007
(without using a sheet for caching).
You know tell me what instructions can I use so that when strengthened from
the application and return concourse data stored?
There sending code and thank you.


piero

Store array ???
 


"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


joel

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


Dave Peterson

Store array ???
 
It could be a public variable in a General module.
It could be a static variable in a general module.



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.

"piero" wrote:

Hello everyone,
I have a small problem: I would like to store an array in VB Excel 2007
(without using a sheet for caching).
You know tell me what instructions can I use so that when strengthened from
the application and return concourse data stored?
There sending code and thank you.


--

Dave Peterson


All times are GMT +1. The time now is 05:32 AM.

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