Vba 操作宏上的控制按钮运行两次

Vba 操作宏上的控制按钮运行两次,vba,excel,Vba,Excel,我有一个问题不知怎么解决了,但我不明白: 我正在使用VBA excel上的控制按钮,例如: With .Controls.Add(Type:=msoControlButton) .Caption = "My caption" .OnAction = "TestMacro(5)" End With 5是testMacro的输入当我点击按钮时,宏运行了两次 我现在使用.OnAction=“'TestMacro 5'” 例如,我可以看到一些帖子,其中使用带括号的语法也是一个解决方案(

我有一个问题不知怎么解决了,但我不明白:

我正在使用VBA excel上的控制按钮,例如:

With .Controls.Add(Type:=msoControlButton)
    .Caption = "My caption"
    .OnAction = "TestMacro(5)"
End With
5
testMacro
的输入当我点击按钮时,宏运行了两次

我现在使用
.OnAction=“'TestMacro 5'”

例如,我可以看到一些帖子,其中使用带括号的语法也是一个解决方案(我们还可以看到另一个带有单引号的解决方案也在提案列表中,而不是主要答案)


为什么要跑两次?哪个语法是正确的?

由于括号的缘故,它运行了两次。技术上没有正确的语法,因为官方不支持这种语法。请注意,如果在.xlsb格式的文件中使用此选项,可能会出现问题。@Rory,关于运行两次:那么为什么括号会导致同一个宏运行两次?是否有计划运行两次的情况,或者只是功能构建的问题?关于不受支持的函数:这意味着有些函数可用但不受支持,您知道如何验证我关心的函数是否受支持吗?我不知道它为什么会这样做。我想没有人会。如果将该语法用于
应用程序。运行
,您将看到同样的情况。如果您找不到它的任何MS文档,它可能不受支持。好的,谢谢您的时间和答案@BitAccesser如果您在整数后面附加一个
&
,它将立即转换为字符串,并且与
.OnAction=“TestMacro(5)”
完全相同。