public or global array

S

shishi

Hi,

I am trying to generate a public or global array. The situation is
like this...I have couple of subroutines..Each of these subroutines
needs data stored in an array. I wish to generate this array and make
it public or global in one subroutine and make it available to all
other subroutines..How can I accomplish that..The code snippet as
below..

Sub GeneratePublicArray()
Dim MyArray As Variant
Dim mCell As Range

Set mCell =
ThisWorkbook.Sheets("SPECS").Range("NO_OF_MODULES").Offset(3, 1)

MyArray = Application.Transpose(Range(mCell, mCell.End(xlDown)))

End Sub
 
T

Tom Ogilvy

In a general module at the top if the module, declare it as public. don't
declare it anywhere else.

Public MyArray as Variant

Sub GeneratePublicArray()
Dim mCell As Range

Set mCell =ThisWorkbook.Sheets( _
"SPECS").Range("NO_OF_MODULES").Offset(3, 1)

MyArray = Application.Transpose(Range(mCell, mCell.End(xlDown)))

End Sub
 
G

Guest

Do not declare the array within a sub. Instead declare it at the top of a
standard code module.

public myArray as Variant

sub Test
myArray(0) = "Test"
exit sub

Be careful with overusing globals as they can be tough to debug. If you have
a bunch of different procedures all modifying the varaible then if the
variable contains the wrong value at any point in the execution, it can be
hard to track down which procedure added the incorrect value.
 

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