首页 > 解决方案 > 将按钮文本/名称作为参数传递给子/函数

问题描述

我有 4 个按钮 - 作为形状,因为我想对它们应用一些样式 - 它们都有不同的文本并且名称不同,否则它们是相同的。

我想为所有接受按钮文本或名称作为参数的子分配相同的子,并根据传递给子的文本/名称执行略有不同的操作。

是否可以?还是我必须为 1 个按钮创建 4 个潜艇?

代码草案:

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

标签: excelvba

解决方案


如果它们是形状,只需将相同的宏分配给它们并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 个字符。


推荐阅读