![]() |
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 |
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 . |
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 |
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