我编写了一个最初具有0个参数的宏,然后从Excel工作表上的按钮调用了该宏。设计发生了变化,现在我向宏添加了两个可选参数,如下所示:
Function ButtonClick(Optional prop1 As String, Optional prop2 As String)
`Do stuff here
End Function
我现在正尝试将两个参数都从按钮传递给宏,但是每次都会出错。
首先我尝试:
Sheet1.xlsm!ButtonClick(EVALUATE("A3"), EVALUATE("A4"))
如在此question中所建议的,但对于That function isn't valid
却出错。
我注意到在问题中,最上面的答案还要求将整个宏名称用单引号引起来,所以我这样做了:
'Sheet1.xlsm!ButtonClick(EVALUATE("A3"), EVALUATE("A4"))'
这次出现错误Formula is too complex to be assigned to an object
。
我在做什么错了?
答案 0 :(得分:2)
这对我有用:
'Sheet1.ButtonClick Evaluate("A3"), Evaluate("A4")'
以ButtonClick
为子。单引号是必需的。
请注意,这也适用:
'Sheet1.ButtonClick [A3], [A4]'
因为[]
是VBA Evaluate()
的快捷方式