Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi,
Is there a way or a trick to detect in a procedure the name of its caller? TIA Paul |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Does a neat trick include keeping track yourself?
Option Explicit Public myParentCaller As String Sub test1() Dim myParentTemp As String MsgBox "I got called from: " & myParentCaller myParentTemp = myParentCaller myParentCaller = "test1" Call test2 myParentCaller = myParentTemp MsgBox "I still got called from: " & myParentCaller End Sub Sub test2() Dim myParentTemp As String MsgBox "I got called from: " & myParentCaller myParentTemp = myParentCaller myParentCaller = "test2" Call test3 myParentCaller = myParentTemp MsgBox "I still got called from: " & myParentCaller End Sub Sub test3() Dim myParentTemp As String MsgBox "I got called from: " & myParentCaller myParentTemp = myParentCaller 'no more calls, just in case... myParentCaller = myParentTemp MsgBox "I still got called from: " & myParentCaller End Sub count wrote: Hi, Is there a way or a trick to detect in a procedure the name of its caller? TIA Paul -- Dave Peterson |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Only if it is called from the onaction property of a shape or if it is in a
function called from a worksheet cell. Then you can use application.caller. If another procedure calls it, you would have to pass in the name of the procedure by hard coding the name in your code. -- Regards, Tom Ogilvy "count" wrote in message ... Hi, Is there a way or a trick to detect in a procedure the name of its caller? TIA Paul |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
You probably don't need all these possibilities:
Function doTest(Optional arg = "???") Dim v As Variant Select Case TypeName(Application.caller) Case "Range" v = Application.caller.Address Case "String" v = Application.caller Case "Error" v = "arg=" & arg Case Else v = "unknown" End Select doTest = "caller = " & v End Function Sub proc1() Dim x As Variant MsgBox doTest("proc1") End Sub Sub proc2() Dim x As Variant MsgBox doTest("proc2") End Sub count wrote: Hi, Is there a way or a trick to detect in a procedure the name of its caller? TIA Paul |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Application.Caller | Excel Discussion (Misc queries) | |||
Row = Application.Caller.Row | Excel Worksheet Functions | |||
Application.Caller | Excel Programming | |||
application.caller | Excel Programming | |||
DDE and application.caller help | Excel Programming |