Search code examples
excelfunctiondebuggingmethod-call

Finding out which function called other funciton in VBA excel


Problem I have an excel file with a quite complicated VBA code behind and I am having some problems to track back and debug the errors. Sometimes a function B gets a value that it should not get and crashes, but at this point it is not possible for me to know which other funciton called that function B, and the anylys process to finding it out is very much time consuming.

My solution The solution could be transform all the functions I have in the following way:

Sub foo1(variable1 as string)
    'do whatever
End Sub

into

Sub foo1(variable1 as string, inforvariable as string)
    'do whatever
End Sub

Infovariable being the name of the function calling. This is obviously very time consuming (refactoring everything). Besides I dont know neither how to access the name of the "sub" of funcion of the code calling, something like:

infovariable = self.name
call foo1(variable1, inforvariable)

Does not seems to exists in VBA

Some ideas?

I have a look here, here, and here


Solution

  • Debug your macro, put a breakpoint on the line with the problem (in case the line gets called too often, add a condition only to break upon that condition), and view the call stack (keyboard shortcut Ctrl+L).