Здравствуйте уважаемые форумчане. У меня вопрос по автоматическому формированию связанного списка. Я создаю файл екселя 2003 с помощью автоматизации с использованием языка C# в среде Visual Studio 2010. Первый список создается в ячейке B3 нормально. При создании второго списка возникает ошибка COMException и моя программа аварийно завершается. При этом список не создается. Во втором списке использую формулу "=ДВССЫЛ(B3)", где B3 - адрес ячейки первого списка. Я выяснил, что при программном создании первого списка ячейка B3 остается ПУСТОЙ и это приводит к ошибке при создании второго связанного списка. Если после создания первого списка в нем выбрать любое допустимое значение, то ошибки при создании второго списка не будет. Подскажите пожалуйста как можно решить данную проблему. Привожу код функции формирования обоих списков на языке C# public void CreateDropDownList(string cell, string range) { _range = _workSheet.GetType().InvokeMember("Range", BindingFlags.GetProperty, null, _workSheet, new object[] {cell}); var val = _range.GetType().InvokeMember("Validation", BindingFlags.GetProperty, null, _range, null);
val.GetType().InvokeMember("IgnoreBlank", BindingFlags.SetProperty, null, val, new object[] {true}); val.GetType().InvokeMember("InCellDropdown", BindingFlags.SetProperty, null, val, new object[] {true}); }
Вот код вызова функции: первый список form = string.Format("={0}", "Менеджеры"); _excel.CreateDropDownList("$B$3", form); второй список form = "=ДВССЫЛ(B3)"; _excel.CreateDropDownList("$B$6", form);
Во вложении файл со сформированными списками на листе Клиенты (как должно получиться).
Заранее благодарен
Здравствуйте уважаемые форумчане. У меня вопрос по автоматическому формированию связанного списка. Я создаю файл екселя 2003 с помощью автоматизации с использованием языка C# в среде Visual Studio 2010. Первый список создается в ячейке B3 нормально. При создании второго списка возникает ошибка COMException и моя программа аварийно завершается. При этом список не создается. Во втором списке использую формулу "=ДВССЫЛ(B3)", где B3 - адрес ячейки первого списка. Я выяснил, что при программном создании первого списка ячейка B3 остается ПУСТОЙ и это приводит к ошибке при создании второго связанного списка. Если после создания первого списка в нем выбрать любое допустимое значение, то ошибки при создании второго списка не будет. Подскажите пожалуйста как можно решить данную проблему. Привожу код функции формирования обоих списков на языке C# public void CreateDropDownList(string cell, string range) { _range = _workSheet.GetType().InvokeMember("Range", BindingFlags.GetProperty, null, _workSheet, new object[] {cell}); var val = _range.GetType().InvokeMember("Validation", BindingFlags.GetProperty, null, _range, null);
val.GetType().InvokeMember("IgnoreBlank", BindingFlags.SetProperty, null, val, new object[] {true}); val.GetType().InvokeMember("InCellDropdown", BindingFlags.SetProperty, null, val, new object[] {true}); }
Вот код вызова функции: первый список form = string.Format("={0}", "Менеджеры"); _excel.CreateDropDownList("$B$3", form); второй список form = "=ДВССЫЛ(B3)"; _excel.CreateDropDownList("$B$6", form);
Во вложении файл со сформированными списками на листе Клиенты (как должно получиться).
Вот откуда все время берете этот способ составления связанных вып. списков? С Планеты что ли? Помню, как-то наткнулся там случайно на какую-то статью про это. Держите другим способом. Там можно без СМЕЩ, ИНДЕКСами, но формула тогда будет посложнее. И здесь еще посмотрите.
Вот откуда все время берете этот способ составления связанных вып. списков? С Планеты что ли? Помню, как-то наткнулся там случайно на какую-то статью про это. Держите другим способом. Там можно без СМЕЩ, ИНДЕКСами, но формула тогда будет посложнее. И здесь еще посмотрите._Boroda_
Вы не ответили на поставленный вопрос. Я спрашивал "Как устранить проблему возникновения ошибки при создании второго (связанного) списка, если в первом списке ничего еще не выбрано" .
Вы не ответили на поставленный вопрос. Я спрашивал "Как устранить проблему возникновения ошибки при создании второго (связанного) списка, если в первом списке ничего еще не выбрано" .magataka