Excel功能区自定义:动态菜单,getContent和OnAction

时间:2016-09-20 08:59:32

标签: xml excel vba excel-vba ribbon

下面的代码产生以下错误,由OnAction部分引起:“错误的参数数量或无效的属性赋值”。

Sub GetContent(control As IRibbonControl, ByRef returnedVal)
Dim xml As String
Dim i As Integer
lastRow = ActiveSheet.Range("A100").End(xlUp).Row

xml = "<menu xmlns=""http://schemas.microsoft.com/office/2009/07/customui"">"

For i = 2 To lastRow
    xml = xml & "<button id=" & """but" & i & """" & " label=""" & ActiveSheet.Range("A" & i).Value & """" & " onAction=" & """" &     ActiveSheet.Range("B" & i).Value & """" & " />"
Next

xml = xml & "</menu>"

returnedVal = xml
End Sub

目标是根据工作表中两列中的输入在功能区中创建动态菜单,其中一列具有表名(A),另一列具有宏名称(B)。

1 个答案:

答案 0 :(得分:2)

我刚刚找到了解决方案。我在尝试使用onAction语句执行的宏中需要以下内容:

ByRef control As IRibbonControl

这样:

Sub Table1(ByRef control As IRibbonControl)
code
end sub