2013-03-14 4 views
11

Ich habe ein Makro, das ich über eine Registerkarte/Gruppe/Taste durch das Custom UI Editor hinzugefügt nennen -VBA Fehler ‚Falsche Anzahl von Argumenten oder ungültiger Eigenschaftszuweisungen‘, wenn sie über benutzerdefinierte Schaltfläche ausgeführt Makro

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> 
    <ribbon startFromScratch="false"> 
     <tabs> 
      <tab id="tabCustomActions" label="Custom ActionsXXX" insertAfterMso="TabDeveloper"> 
       <group id="GroupTLA" label="TLA Actions"> 
        <button id="buttonFormatTLA" label="Format as TLA" image="TLALogo" size="large" onAction="start_tla" /> 
       </group> 
      </tab> 
     </tabs> 
    </ribbon> 
</customUI> 

Der Taste zeigt ganz gut, mit meinem individuelles logo, aber wann immer ich den Knopf ich den Fehler folgen erhalten klicken -

VBA Error

VBA wird nicht nach diesem Fehler geöffnet, wie es gewöhnlich der Fall ist, und kein Code VBA wird als das Problem angezeigt, wenn ich die Entwicklung öffne Loper Konsole und versuchen Sie dann und klicken Sie auf die Schaltfläche.

Seltsamerweise, wenn ich versuche, das Makro manuell auszuführen, funktioniert es gut ohne Fehler. Hat jemand irgendwelche Ideen, wie man das löst?

Hier ist mein voller Code in einer Pastebin, sollten Sie es anzeigen möchten. Vielen Dank.

+0

Die VBA-IDE wird nicht geöffnet, weil Sie nicht VBA ausführen, das ist ein Makro, oder? Welcher Code läuft in VBA, wenn Sie ihn manuell ausführen? – Brad

+2

Brad: in Excel und den anderen Office-Produkten, VBA = Makro. Gleiche Sache. –

Antwort

12

Sie haben die falsche Signatur für den Rückruf start_tla in Ihrem VBA-Code.

Wenn Sie Ihre Datei in Custom UI öffnen Editor, gibt es eine Schaltfläche namens Rückrufe im Menü nach rechts generieren. Wenn Sie es drücken, wird es Ihnen die richtigen Rückrufe für Ihren VBA-Code geben das Band xml in der Datei übereinstimmen:

'Callback for buttonFormatTLA onAction 
Sub start_tla(control As IRibbonControl) 
    'Your code goes here 
End Sub 

Nach dem Pastebin Link, Ihre Unter sieht wie folgt aus, ohne die control As IRibbonControl Parameter:

Public Sub start_tla() 
+0

Perfekt, danke dafür. Ich habe tatsächlich eine generische 'on_customUI_action'-Rückruffunktion erstellt und dann geprüft, welche Taste gedrückt wurde. So funktioniert das Makro, wenn ich es auch manuell ausführe. Vielen Dank. –

+1

In meinem Fall hatte ich den gleichen Modulnamen in einem anderen 'Add-In', das geöffnet war. Dieser Fehler ist verschwunden, nachdem ich dem Modul einen eindeutigen Namen gegeben habe. – Dhay

Verwandte Themen