我有4个按钮-作为形状,因为我想对它们应用某种样式-所有按钮都具有不同的文本,并且命名不同,否则它们是相同的。
我想为所有接受按钮文本或名称作为参数的子项分配相同的子项,并根据传递给子项的文本/名称执行略有不同的操作。
有可能吗?还是我必须创建4个子,每个子1个按钮?
代码草稿:
Sub button_pressed(button_text as string)
If button_text = "A" then
do something
Else if button text = "B" then
do something else
'etc...
end if
End sub
答案 0 :(得分:3)
如果它们是形状,只需将相同的宏分配给所有形状,然后在宏中测试Application.Caller
:
Sub button_pressed()
dim button_text as string
button_text = application.caller
If button_text = "A" then
do something
Elseif button_text = "B" then
do something else
'etc...
end if
End sub
尽管形状名称超过31个字符会遇到问题,因为Application.Caller
仅返回前31个字符。
答案 1 :(得分:2)
如果这些是分配了宏的形状,则可以使用Application.Caller来获取单击按钮的名称。所以:
Sub AssignedMacro()
Select Case Application.Caller
Case "ButtonCaption 1"
Case "ButtonCaption 2"
Case Else
End Select
End Sub