View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
Helmut Meukel Helmut Meukel is offline
external usenet poster
 
Posts: 49
Default Help With A Variable And Functions

As Don already suggested, you can declare MyValue as Public,
or you use MyValue as parameter in your call to the sub.
Call MySubThatChangesAValue(MyValue)

Sub MySubThatChangesAValue(ByRef aValue)
...some code that changes MyValue....
End Sub

Note that MyValue is passed by reference (the default for most
data types), not by value. Thus changes made to aValue in
the sub are there in MyValue when returning from the sub.
Two advantages compared with the "Public"approach: MyValue
is not visible/accessible for other subs/functions and you can call
the sub from another function to perform the same changes to
another variable e.g.
Call MySubThatChangesAValue(MySecondValue)
Even in such a scenario a public variable might work, but then
you have to assign the different values to MyValue and keep track
of what MyValue holds. Error prone.

Helmut.


"Andy" schrieb im Newsbeitrag
...
Hi Gang

I need some help with variables with functions. I've got a main
function that does some processing with a variable MyValue. I need to
create a sub function that changes the value of MyValue so that when
the sub function is done the main function knows what the new value of
MyValue is. How do I do this???

Please help,
Andy


Public Sub MyMainFunction()
MyValue = 10
Call MySubThatChangesMyValue

...more processing that relies on the changed MyValue...
End Sub

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

Sub MySubThatChangesMyValue()
...some code that changes MyValue....
End Sub