ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Initializing static variables in VBA (https://www.excelbanter.com/excel-programming/308281-initializing-static-variables-vba.html)

Adrian[_7_]

Initializing static variables in VBA
 
Hi,

I am writing a static procedure as follows:

Sub Test

call Counter
call Counter
call Counter

End


Sub Counter()

Static counter as Integer

counter = counter + 1

Debug.print x

End Sub

I want to print a series of numbers 12,13,14, from the
test procedure instead of 1,2,3 . How do i go about doing it ?
In other words, how do i initialize a static variable in a Sub procedure ?

Thanks.

--
Regards,
Adrian



Dustin

Initializing static variables in VBA
 
Why not check to see if the variable is empty or a value
that you desire, for example:

Sub Counter()

Static counter as Integer

'Assign a value to counter if empty or less than 11.
If counter = "" or counter < 11 Then
counter = 11
End If

counter = counter + 1

'counter now equals 12

Debug.print x

End Sub


-----Original Message-----
Hi,

I am writing a static procedure as follows:

Sub Test

call Counter
call Counter
call Counter

End


Sub Counter()

Static counter as Integer

counter = counter + 1

Debug.print x

End Sub

I want to print a series of numbers 12,13,14, from

the
test procedure instead of 1,2,3 . How do i go about

doing it ?
In other words, how do i initialize a static variable in

a Sub procedure ?

Thanks.

--
Regards,
Adrian


.


Tom Ogilvy

Initializing static variables in VBA
 
Sub Test()

Call counter(12)
Call counter
Call counter

End Sub


Sub counter(Optional InitSet As Variant)

Static counter As Integer
If Not IsMissing(InitSet) Then
counter = InitSet - 1
End If
counter = counter + 1

Debug.Print counter

End Sub

--
Regards,
Tom Ogilvy

"Adrian" wrote in message
...
Hi,

I am writing a static procedure as follows:

Sub Test

call Counter
call Counter
call Counter

End


Sub Counter()

Static counter as Integer

counter = counter + 1

Debug.print x

End Sub

I want to print a series of numbers 12,13,14, from the
test procedure instead of 1,2,3 . How do i go about doing it ?
In other words, how do i initialize a static variable in a Sub procedure ?

Thanks.

--
Regards,
Adrian





Bob Kilmer

Initializing static variables in VBA
 
You cannot initialize a static variable in VB per se, but ...

Sub Counter()
Static counter as Integer

If counter < 12 Then
counter = 12
Else
counter = counter + 1
End If

Debug.print x
End Sub

BTW, a Long has a larger range than an Integer, if it matters.

"Adrian" wrote in message
...
Hi,

I am writing a static procedure as follows:

Sub Test

call Counter
call Counter
call Counter

End


Sub Counter()

Static counter as Integer

counter = counter + 1

Debug.print x

End Sub

I want to print a series of numbers 12,13,14, from the
test procedure instead of 1,2,3 . How do i go about doing it ?
In other words, how do i initialize a static variable in a Sub procedure ?

Thanks.

--
Regards,
Adrian






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

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