Я использую NetOffice для редактирования электронной таблицы Excel. Если я вызову код из пользовательской функции Excel, он не позволит мне редактировать вызывающую электронную таблицу.
Excel.Application excelApplication = Excel.Application.GetActiveInstance();
Excel.Worksheet workSheet = (Excel.Worksheet) excelApplication.ActiveSheet;
Excel.Range cell = workSheet.Cells[2, 2];
object value = cell.Value; //works
cell.Value = 3; //Throws Exception
есть ли обходной путь, который позволит мне это сделать?
Исключение составляет
"System.Runtime.InteropServices.COMException (0x80004005): подробности см. В разделе о внутреннем исключении. ---> System.Reflection.TargetInvocationException: исключение было сгенерировано целью вызова. ---> System.Runtime. InteropServices.COMException: Исключение из HRESULT: 0x800A03EC --- Конец трассировки стека внутреннего исключения --- в System.RuntimeType.InvokeDispMethod (String name, BindingFlags invokeAttr, Object target, Object [] args, Boolean [] byrefModifiers, культура Int32, String [] namedParameters) в System.RuntimeType.InvokeMember (имя строки, BindingFlags bindingFlags, связыватель привязки, цель объекта, Object [] providedArgs, ParameterModifier [] модификаторы, культура CultureInfo, String [] namedParams) в System.Type.InvokeMember (String name, BindingFlags invokeAttr, Binder binder, Object target, Object [] args, CultureInfo culture) в NetOffice.Invoker.PropertySet (COMObject comObject, String name, Object [] value) в NetOffice.Invoker.PropertySet (COMObject comObject, String name, Объект [] va lue) в NetOffice.ExcelApi.Range.set_Value (значение объекта) в ExcelExamplesCS45.Example01.RunExample () в \ psf \ home \ Documents \ Visual Studio 2013 \ Projects \ Excel-REPL \ Excel-REPL \ Example01.cs: строка 29 в ClojureExcel.MainClass.Test () в \ psf \ home \ Documents \ Visual Studio 2013 \ Projects \ Excel-REPL \ Excel-REPL \ MainClass.cs: строка 310 "