我使用一个xla文件在excel中运行我的vba代码。我有许多模板,它们使用这个xla文件。有没有任何方法可以找到哪个模板从xla运行(打开) xla文件。
我用过:
ThisWorkbook.FullName 但是它返回xla文件的名称,而不是模板的名称。
发布于 2014-05-28 13:51:26
我认为对于一个Function或一个Sub来说,找出谁在调用它并不是一种简单的方法(因为调用/堆栈跟踪对VBA来说是不可用的)。
例如,您可以通过在您的push中全局访问的定制堆栈上实现一些pop和.xla操作来进行自己的跟踪。当一个函数被调用时,它会将它的filename+module+name推到堆栈上,当它结束时,它会从堆栈中弹出该信息。
但是,同样地,它依赖于调用函数的“仁”(例如,引用.xla文件的文件中的函数)来使用跟踪约定。而且,它可能会使您的代码更加脆弱。而且,如果您不处理所有可能破坏函数/subs执行的异常,这可能会使情况变得更糟。
还请参见以下(最后一节):http://www.cpearson.com/excel/DebuggingVBA.aspx
https://stackoverflow.com/questions/23908611
复制相似问题