2015-03-12 2 views
0

У меня есть приложение для Excel-2010 в VBA. Если я выполню код из редактора VBA, он отлично работает. Но когда я выполнить макрос с помощью кнопки на ленте создаваемой для Addin он выдает эту ошибку: Compile Error in Hidden Module: Module 1Ошибка компиляции в скрытом модуле: модуль 1

Моего код:

Sub QE_eventhandler(control As IRibbonControl) 
    If MsgBox("Esta acción no se podrá deshacer. ¿Desea Continuar?", vbExclamation + vbOKCancel, "Confirmar -Quitar Espacios-") = vbOK Then 
     QuitaEspacios 
    End If 
End 

Sub QuitaEspacios() 
Dim celda As Range 
    For Each celda In Selection 
     If TypeName(celda.Value) = "String" Then 
      celda.Value = Application.WorksheetFunction.Trim(celda.Value) 
     End If 
    Next 
End Sub 

Код, сгенерированный с пользовательским редактором пользовательского интерфейса:

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"> 
    <ribbon> 
     <tabs> 
      <tab id="customTab" label="GARSA Tools"> 
       <group id="customGroup1" label="Reformateo Texto"> 
        <button id="customButton3" label="Quitar Espacios" size="large" onAction="QE_eventhandler" imageMso="TextEffectTracking" /> 
       </group> 
      </tab> 
     </tabs> 
    </ribbon> 
</customUI> 

ответ

2

вы пропускаете End Sub в конце обратного вызова - вы просто End:

Sub QE_eventhandler(control As IRibbonControl) 
    If MsgBox("Esta acción no se podrá deshacer. ¿Desea Continuar?", vbExclamation + vbOKCancel, "Confirmar -Quitar Espacios-") = vbOK Then 
     QuitaEspacios 
    End If 
End Sub 
+0

Это не является обязательным ... –

+0

@EugeneAstafiev Нет, это не так. Все подпрограммы должны заканчиваться на 'End Sub', а не' End'. – Rory

+0

Да, вы правы - [Sub Statement] (https://msdn.microsoft.com/en-us/library/office/gg278504.aspx). Существует различие между Visual Basic и VBA. –

 Смежные вопросы

  • Нет связанных вопросов^_^