我正在使用安迪·波普的RibbonX视觉设计师2010外接程序创建一个自定义选项卡、组和按钮。我已经在启动时打开的XLAM工作簿中将各种宏作为VBA代码。我遇到的问题是,我不知道如何从这些按钮中调用该过程。RibbonX为带有OnAction字段的按钮提供属性窗体。我试过了
ProcedureName
"ProcedureName“
“‘spreadsheetname.xlam’!ProcedureName‘
我得到的只是一条错误消息“错误的参数数或无效的属性分配”。这个过程不需要争论,所以这不是问题所在。附加的图像显示了属性窗体和OnAction字段的外观。
有人能给我一个提示一下这个程序电话的形式吗?
发布于 2020-07-25 03:24:49
我应该更仔细地阅读你的问题。关键是“这个过程不需要任何论据”。
在丝带编辑器中,只需提供
NumberFormatTwoDecimals对于OnAction,以及,请确保您的sub按以下方式声明:
Public Sub NumberFormatTwoDecimals(control As IRibbonControl)
'Your code goes here...
End SubExcel期望您为control参数腾出空间,该参数系统地传递给您指定的子参数,即使您对该参数没有任何用途。
开发人员通常在许多OnAction属性中为不同的控件指定相同的子属性,因为一旦进入它们的子控件,他们就可以检查control参数的ID和/或Tag属性来决定该做什么:
Public Sub MyActionHandler(control As IRibbonControl)
Select Case control.ID
Case "MyButton1": HandleMyButton1
Case "MyButton2": HandleMyButton2
Case Else: MsgBox "?!?"
End Select
End Sub使用后一种方法,您不必修改现有的代码库来容纳control参数。
发布于 2020-07-25 06:20:26
对于带状按钮,回调应该如下所示:
C#: void OnAction(IRibbonControl control)
VBA: Sub OnAction(control As IRibbonControl)
C++: HRESULT OnAction([in] IRibbonControl *pControl)
Visual Basic: Sub OnAction(control As IRibbonControl)您可以在以下文章中为所有类型的带状控件描述所有回调:
https://stackoverflow.com/questions/63080095
复制相似问题