Tell whether or not Sub B was called by Sub A?
'/-----------------------------------/
Sub A()
Dim SubBCalledFromSubA As Boolean
'first reset Boolean, just in case
SubBCalledFromSubA = False
' .....
SubBCalledFromSubA = True
Call B(SubBCalledFromSubA)
' ....
'reset Boolean
SubBCalledFromSubA = False
End Sub
'/-----------------------------------/
Sub B(Optional blnCheck)
If IsMissing(blnCheck) Then blnCheck = True
If blnCheck = True Then
'code here
MsgBox "It's True!"
End If
If blnCheck = False Then
'some other code here
MsgBox "It's False :O<"
End If
End Sub
'/-----------------------------------/
--
Hope this helps.
If it does, please click the Yes button.
Thanks in advance for your feedback.
Gary Brown
"IanKR" wrote:
For example, if I have two Subs in my project, say A and B, and B may
sometimes be called from within A and at other times it may be run
independently of A, other than setting a global Boolean as illustrated
below, is there a slick way of telling?
Dim SubBCalledFromSubA as Boolean
Sub A()
'first reset Boolean, just in case
SubBCalledFromSubA = FALSE
.....
SubBCalledFromSubA = TRUE
Call B
....
'reset Boolean
SubBCalledFromSubA = FALSE
End Sub
Sub B()
If SubBCalledFromSubA = TRUE Then
'code here
End If
If SubBCalledFromSubA = FALSE Then
'some other code here
End If
End Sub
I thought that Application.Caller (or something similar) might be relevant
here, but it doesn't appear to be, judging by the help file.
Thanks
Ian
|