从功能区调用excel宏

Bob*_*Bob 3 excel ribbon

简介:我已经编写了一些简短的excel宏(测试过,它们工作正常),并希望将它们链接到功能区中的按钮(Excel 2010).我已经在Excel 2007中成功完成了它.我使用自定义UI编辑器来构建一个新的功能区,它也可以正常工作.所有内容都打包在.xlam加载项中并添加到Excel中.功能区很好地显示,所有其他按钮都有效,但......

问题:当我点击链接到宏的按钮时,我得到错误:"错误的参数数量或属性赋值无效"(从意大利语翻译的消息,英语可能不完全相同)

故障排除信息:宏没有参数.可以手动成功调用和执行相同的宏.我甚至可以将相同的宏添加到快速访问工具栏.

以下是功能区脚本的特定部分:

<group id="DupNumber" label="Number" insertBeforeMso="GroupNumber" >  
    <comboBox idMso="NumberFormatGallery"/> 
    <box id="HN1" boxStyle="horizontal"> 
        <buttonGroup id="HNButtonGroup1"> 
            <button id="Euro" onAction="Roberto.xlam!EURZ" imageMso="F" supertip="text ..."/> 
            <button id="EuroNZ" onAction="Roberto.xlam!EURNZ" imageMso="E" supertip="text ..."/> 
            <button idMso="PercentStyle"/> 
            <button id="Comma" onAction="Roberto.xlam!NewCommaFormat" imageMso="C" supertip="test ..."/> 
            <button idMso="PercentStyle"/> 
        </buttonGroup> 
    </box>
Run Code Online (Sandbox Code Playgroud)

这是宏:

Sub EURZ()
    Application.ActiveCell.NumberFormat = "€ #,##0.00"
End Sub
Sub EURNZ()
    Application.ActiveCell.NumberFormat = "€ #,##0"
End Sub
Sub NewCommaFormat()
    Application.ActiveCell.NumberFormat = "#,##0"
End Sub
Run Code Online (Sandbox Code Playgroud)

你能帮助我吗?谢谢罗伯托

Jus*_*elf 10

罗伯托,

我相信你需要将这个参数添加到你的宏"control As IRibbonControl"

所以看起来应该是这样的:

Sub EURZ(control As IRibbonControl)
    Application.ActiveCell.NumberFormat = "€ #,##0.00"
End Sub
Run Code Online (Sandbox Code Playgroud)

希望对你有用.

-Justin

  • 您可能还希望将此参数设置为Optional,以便例如可以继续运行调试器中的sub。 (2认同)