Trovo un comportamento strano quando si tenta di caricare una cartella di lavoro di Excel.Errore di automazione con la compilazione condizionale
Ho un Excel-AddIn, scritto in .NET con COM Interop. Viene principalmente utilizzato per creare la mia propria barra multifunzione, caricare le cartelle di lavoro da un menu e gestire alcuni progetti.
Quando provo ad aprire una cartella di lavoro utilizzando due modi, ottengo risultati diversi:
In primo luogo, quando si carica la cartella di lavoro (Excel 2003-Version) dall'interno del tutto Addin funziona bene. Dall'evento Button del nastro, viene chiamata una funzione pubblica openWorkbook
del componente aggiuntivo che utilizza application.workbooks.open(...)
per caricare la cartella di lavoro di Excel.
In questo modo, la cartella di lavoro si apre senza errori.
In secondo luogo, quando provo a chiamare l'Addin-Function dall'interno di VBA utilizzando il codice come:
Set addIn = Application.COMAddIns("WMExcelAddin1")
Set automationObject = addIn.Object
automationObject.openWorkbook (filename)
ricevo un messaggio di errore:
Compile Error
Errore di automazione
e l'IDE si arresta al primo verificarsi di un compilazione condizionale in una delle cartelle di lavoro moduli, guardando come segue:
#const ebind = 0
[...]
sub proc1()
#if ebind = 1 then ' IDE Stops here
[...]
#else
[...]
#end if
end sub
Ho provato ad utilizzare tipo di dati booleano invece di numeri con lo stesso effetto.
Sono alla fine dei miei spiriti.
come hai esposto le tue classi e metodi a VBA? [qualcosa di simile?] (http://davecra.com/2013/02/01/how-to-expose-methods-in-your-vsto-add-in/) –
[vba4all] (http: // stackoverflow .com/users/2140173/vba4all), sì - esattamente come descritto nel tuo link. (in VB.NET \t anche se non in C#). – DrMarbuse
hai impostato il riferimento al tuo componente aggiuntivo nel progetto vba? – ZAT