Вызов макроса Excel с ленты - PullRequest
       17

Вызов макроса Excel с ленты

3 голосов
/ 18 августа 2011

Введение: я написал несколько коротких макросов Excel (протестировано, они отлично работают) и хочу связать их с кнопкой на ленте (Excel 2010).Я уже сделал это успешно в Excel 2007. Я использую Custom UI Editor для создания новой ленты, которая также отлично работает.Все упаковано в надстройку .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>

, а вот макросы:

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

Вы можете мне помочь?Спасибо, Роберто

1 Ответ

10 голосов
/ 18 августа 2011

Роберто,

Полагаю, вам нужно добавить этот параметр в макрос "control As IRibbonControl"

Так должно выглядеть так:

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

Надеюсь, что это работает для вас.

1010 * -Джастин *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...