哪个命令按钮叫做sub?

时间:2014-05-09 19:02:52

标签: vba excel-vba excel

我在同一工作簿中的许多工作表上都有一个名为“Output”的命令按钮。所有按钮在模块ModMain中调用相同的“子输出()”。我需要知道命令调用来自哪张表?

2 个答案:

答案 0 :(得分:4)

一种方法(如果你在同一个工作表上有多个按钮,所有调用相同的程序,特别有用)你可以使用的是查看

的值
Application.Caller
在您的被叫Sub中

。这将返回单击的按钮的名称:如果您唯一地命名按钮,则可以确定如何处理呼叫。

值得注意的是(使用工作表上的“表单”按钮)可以通过“onAction”设置传递参数,因此如果输入(例如)

'TestSub "Hello", 2' 

进入“宏名称”文本框(包括单引号),它将调用TestSub并传递“Hello”和2作为参数。

答案 1 :(得分:3)

确保它位于每个VBA模块的顶部:

Option Explicit

然后改变这个:

Sub Output()

到此:

Sub Output(strSource as String)

您已为Sub添加了参数。现在你的代码将无法编译。 (如果您不了解这一部分,请参阅帮助。)

修复代码以便编译。 VBA编辑器将引导您到达每个位置。这些位置将是您的"所有相同的VBA程序"纽扣。

每次调用Output时,请将其更改为Output("ThisPlace")。对于此地点,请插入唯一名称作为标识符。

现在按照您可以从Sub

中抓取的方式识别按钮