从function区调用Excelmacros

简介:我写了一些简短的Excelmacros(testing,他们工作正常),并希望链接到function区(Excel 2010)中的button。 我已经在Excel 2007中成功地完成了它。我正在使用自定义用户界面编辑器来构build一个新的function区,这也可以正常工作。 所有东西都打包在一个.xlam加载项中,并添加到Excel中。 丝带显示很好,所有其他button的作品,但…

问题:当我点击链接到macros的button时,出现错误:“错误的参数数量或属性分配无效”(从意大利语翻译的消息,在英语中可能不完全一样)

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

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

<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> 

这里是macros:

 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 

你可以帮我吗? 感谢罗伯托

罗伯托,

我相信你需要添加这个参数到你的macros“控制作为IRibbonControl”

所以应该看起来像这样:

 Sub EURZ(control As IRibbonControl) Application.ActiveCell.NumberFormat = "€ #,##0.00" End Sub 

希望这对你有用。

-Justin