При попытке загрузить книгу Excel я нахожу странное поведение.Ошибка автоматизации с условной компиляцией
У меня есть Excel-AddIn, написанный на .NET с COM Interop. В основном используется для создания моей собственной ленты-ленты, загрузки книг из меню и администрирования некоторых проектов.
При попытке открыть книгу, используя два пути, я получаю разные результаты:
во-первых, когда я загрузить Workbook (Excel 2003-версия) из внутри Аддин все работает отлично. Из Button-события ленты вызывается открытая функция openWorkbook
надстройки, которая использует application.workbooks.open(...)
для загрузки книги Excel.
Таким образом, рабочая книга открывается без ошибок.
Во-вторых, когда я пытаюсь вызвать Addin-Function внутри VBA, используя код, как:
Set addIn = Application.COMAddIns("WMExcelAddin1")
Set automationObject = addIn.Object
automationObject.openWorkbook (filename)
Я получаю сообщение об ошибке:
Compile Error
Automation Error
и IDE останавливается при первом вхождении условная компиляция в одной из рабочих книг-модулей, похожий следующим образом:
#const ebind = 0
[...]
sub proc1()
#if ebind = 1 then ' IDE Stops here
[...]
#else
[...]
#end if
end sub
Я пытался использовать булеву тип данных вместо чисел с тем же эффектом.
Я нахожусь в своем остроумие.
Как вы показали свои классы и методы для VBA? [что-то вроде этого?] (http://davecra.com/2013/02/01/how-to-expose-methods-in-your-vsto-add-in/) –
[vba4all] (http: // stackoverflow .com/users/2140173/vba4all), да - точно так, как описано в вашей ссылке. (в VB.NET \t, хотя и не в C#). – DrMarbuse
У вас есть ссылка на ваш addin в проекте vba? – ZAT