首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RibbonX OnAction:错误的参数数或无效的属性分配

RibbonX OnAction:错误的参数数或无效的属性分配
EN

Stack Overflow用户
提问于 2020-07-24 19:11:06
回答 2查看 534关注 0票数 0

我正在使用安迪·波普的RibbonX视觉设计师2010外接程序创建一个自定义选项卡、组和按钮。我已经在启动时打开的XLAM工作簿中将各种宏作为VBA代码。我遇到的问题是,我不知道如何从这些按钮中调用该过程。RibbonX为带有OnAction字段的按钮提供属性窗体。我试过了

ProcedureName

"ProcedureName“

“‘spreadsheetname.xlam’!ProcedureName‘

我得到的只是一条错误消息“错误的参数数或无效的属性分配”。这个过程不需要争论,所以这不是问题所在。附加的图像显示了属性窗体和OnAction字段的外观。

带有OnAction字段的属性形式

有人能给我一个提示一下这个程序电话的形式吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-25 03:24:49

我应该更仔细地阅读你的问题。关键是“这个过程不需要任何论据”。

在丝带编辑器中,只需提供

代码语言:javascript
复制
NumberFormatTwoDecimals

对于OnAction,以及,请确保您的sub按以下方式声明:

代码语言:javascript
复制
Public Sub NumberFormatTwoDecimals(control As IRibbonControl)
    'Your code goes here...
End Sub

Excel期望您为control参数腾出空间,该参数系统地传递给您指定的子参数,即使您对该参数没有任何用途。

开发人员通常在许多OnAction属性中为不同的控件指定相同的子属性,因为一旦进入它们的子控件,他们就可以检查control参数的ID和/或Tag属性来决定该做什么:

代码语言:javascript
复制
Public Sub MyActionHandler(control As IRibbonControl)
    Select Case control.ID
        Case "MyButton1": HandleMyButton1
        Case "MyButton2": HandleMyButton2
        Case Else: MsgBox "?!?"
    End Select
End Sub

使用后一种方法,您不必修改现有的代码库来容纳control参数。

票数 3
EN

Stack Overflow用户

发布于 2020-07-25 06:20:26

对于带状按钮,回调应该如下所示:

代码语言:javascript
复制
C#: void OnAction(IRibbonControl control)

VBA: Sub OnAction(control As IRibbonControl)

C++: HRESULT OnAction([in] IRibbonControl *pControl)

Visual Basic: Sub OnAction(control As IRibbonControl)

您可以在以下文章中为所有类型的带状控件描述所有回调:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63080095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档