ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Creating a static function (https://www.excelbanter.com/excel-programming/386283-creating-static-function.html)

Brite

Creating a static function
 
I'm not sure if i'm doing something that doesn't work, but why can't i seem
to get a static function to work the same as a static sub.

If i run the following code a few times, and i always use the number 1 as x,
i would think that the function should retain the previous value of "test",
and then just increment it by 1, but this isn't happening. "Test" always
returns as 1. I want this to work as a counter that other subs will pull from.

Static Function test(x As Integer) As Integer
test = test + x
End Function


thanks

Tim Williams

Creating a static function
 
There's a good example in the VBA Help.
Static applies to variables, not to Functions.

--
Tim Williams
Palo Alto, CA


"Brite" wrote in message ...
I'm not sure if i'm doing something that doesn't work, but why can't i seem
to get a static function to work the same as a static sub.

If i run the following code a few times, and i always use the number 1 as x,
i would think that the function should retain the previous value of "test",
and then just increment it by 1, but this isn't happening. "Test" always
returns as 1. I want this to work as a counter that other subs will pull from.

Static Function test(x As Integer) As Integer
test = test + x
End Function


thanks




Jay

Creating a static function
 
Hi Brite -

A preserved variable can't have the same name as the function. In other
words, all variables are preserved in a Static function (as you noted) except
for the variable bearing the function's name.

Try it this way:
Static Function test(x As Integer) As Integer
test = stat + x
stat = test
End Function

--
Jay


"Brite" wrote:

I'm not sure if i'm doing something that doesn't work, but why can't i seem
to get a static function to work the same as a static sub.

If i run the following code a few times, and i always use the number 1 as x,
i would think that the function should retain the previous value of "test",
and then just increment it by 1, but this isn't happening. "Test" always
returns as 1. I want this to work as a counter that other subs will pull from.

Static Function test(x As Integer) As Integer
test = test + x
End Function


thanks


Tim Williams

Creating a static function
 
My mistake - does also apply to procedure declaration

Tim

"Tim Williams" <timjwilliams at gmail dot com wrote in message
...
There's a good example in the VBA Help.
Static applies to variables, not to Functions.

--
Tim Williams
Palo Alto, CA


"Brite" wrote in message
...
I'm not sure if i'm doing something that doesn't work, but why can't i
seem
to get a static function to work the same as a static sub.

If i run the following code a few times, and i always use the number 1 as
x,
i would think that the function should retain the previous value of
"test",
and then just increment it by 1, but this isn't happening. "Test" always
returns as 1. I want this to work as a counter that other subs will pull
from.

Static Function test(x As Integer) As Integer
test = test + x
End Function


thanks







All times are GMT +1. The time now is 01:36 PM.

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