Excel VBA。 如何检查是否在工作簿中的任何地方调用一个子(例如,button)

你如何检查Excel VBA Sub从哪里被调用? 打CTRL + F可以很容易地find代码中可能被调用的地方,但是假设有一个隐藏的调用Sub的隐藏button。 你怎么知道的?

请安装插件mztools 。 它有一个选项程序调用程序 ,列出程序调用的所有地方。

下图显示了程序a的所有程序调用者。 在这里输入图像说明

即使您在IDE中使用CTRL + F,也不会在标准窗体button设置为在运行时运行该macros时发现情况。 而且,您的工作簿中的任何形状都可以on action您的子设置进行on action 。 然后你需要检查每一个。 但是如果你需要在编译期间检查这种情况,你可以使用如下的东西:

 Debug.Print Application.Caller 

如果你的子将从标准button开始,那么你得到的信息Button 1shape name如果是从任何其他形状开始。 重要! 如果您使用该检查语法来处理从其他子文件调用子文件时,您将需要error handling过程。

对于其他检查Santosh的想法,你的,最后你可以写一些代码,search所有模块,find你的子和列出它。