有没有办法将ActiveSheet对象和对象作为参数传递给工作表上的命令按钮调用的子?
我知道您可以通过以下命令按钮将参数传递给宏:
How to call a macro from a button and pass arguments
但是,当点击Button_1时,如何将以下参数发送给sub? (不使用commandButton_click事件)
参数1:ws作为工作表(包含按下的按钮的工作表) 参数2:按钮作为对象(按下的按钮)
我已经在"分配宏"中尝试了以下内容。按钮的输入框。
' SubToBeCalledByButton(ActiveSheet,this)'
尝试/ u / Nathan_Sav建议调用类似:' SubToBeCalledByButton(activesheet,activesheet.shapes(" Button Name"))'但得到了以下错误:
这是我在assign macro中使用的输入:
以下是按钮调用的子项:
Public Sub DetailButton(ws As Excel.Worksheet, but As Object)
Debug.Print "ws:" & vbTab & ws.Name
Debug.Print "but:" & vbTab & but.Name
Debug.Print "cal:" & vbTab & Application.Caller
End Sub
答案 0 :(得分:0)
来自Nathan_Sav关于我提问的意见:
不需要将ActiveSheet和CommandButton作为参数发送。
ActiveSheet
只需在被调用子中使用ActiveSheet
即可获得,因为调用sub的按钮必须位于ActiveSheet上才能被按下。
Button
(调用sub的按钮)可以使用Application.Caller