您可以为OnAction分配一个字符串,该字符串包含要调用的子句及其参数(请注意整个字符串用单引号括起来)
喜欢:
Shape.OnAction = "'SubToCallOnAction ""Hello World!""'"
Sub SubToCallOnAction(text As String)
MsgBox text
End Sub
数字参数不需要引号(尽管它们将通过数字传递 – >默认字符串转换 – >默认数字转换)
所以,我想,你想要做的是传递被点击的按钮的名称:
Shape.OnAction = "'SubToCallOnAction """ & Shape.Name & """'"
更高级和灵活的使用可能是这样的:
'Set the button up like:
databaseTable = "tbl_ValidAreas"
databaseField = "Country"
Shape.OnAction = _
"'SubToCallOnAction """ & _
Shape.Name & """ """ & _
databaseTable & """ """ &
databaseField & """'"
...
Sub SubToCallOnAction(buttonID As String, ParamArray args)
Select Case buttonID
Case "button1"
'get the relevant data or whatever using the ParamArray args
Call GetData(args(0),args(1))
...
End Select
End Sub