11.05.2011, 15:10 | #1 |
Участник
|
не работает запуск макроса в Excel
Коллеги, возникла следующая проблема:
в DAX 2009 пытаюсь через .NET interop вызвать существующий в книге Excel макрос, но безуспешно. Код следующий: X++: Microsoft.Office.Interop.Excel._Application app; Microsoft.Office.Interop.Excel.Workbooks wbs; Microsoft.Office.Interop.Excel._Workbook wb; CLRObject ex; Microsoft.Office.Core.MsoAutomationSecurity mas = CLRInterop::parseClrEnum("Microsoft.Office.Core.MsoAutomationSecurity", "msoAutomationSecurityLow"); ; try { app = new Microsoft.Office.Interop.Excel.ApplicationClass(); app.set_Visible(false); app.set_DisplayAlerts(false); app.set_AutomationSecurity(mas); //на всякий случай wbs = app.get_Workbooks(); wb = wbs.Add(#templateName); app.Run("testMacro", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null); app.set_Visible(true); } catch { ex = CLRinterop::getLastException(); if (ex) { info(ex.ToString()); } } Цитата:
System.Reflection.TargetInvocationException: Адресат вызова создал исключение. ---> System.Runtime.InteropServices.COMException (0x800A03EC): Не удается выполнить макрос "testMacro". Возможно, этот макрос отсутствует в текущей книге либо все макросы отключены.
в Microsoft.Office.Interop.Excel.ApplicationClass.Run(Object Macro, Object Arg1, Object Arg2, Object Arg3, Object Arg4, Object Arg5, Object Arg6, Object Arg7, Object Arg8, Object Arg9, Object Arg10, Object Arg11, Object Arg12, Object Arg13, Object Arg14, Object Arg15, Object Arg16, Object Arg17, Object Arg18, Object Arg19, Object Arg20, Object Arg21, Object Arg22, Object Arg23, Object Arg24, Object Arg25, Object Arg26, Object Arg27, Object Arg28, Object Arg29, Object Arg30) --- Конец трассировки внутреннего стека исключений --- в System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) в System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) в System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) в System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) в ClrBridgeImpl.InvokeClrInstanceMethod(ClrBridgeImpl* , ObjectWrapper* objectWrapper, Char* pszMethodName, Int32 argsLength, ObjectWrapper** arguments, Boolean* argsAreByRef, Boolean* isException) |
|
Теги |
.net, excel, interop, интеграция |
|
|