Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выпадающие связанные списки в ексель 2003, Ошибка при создании списков 
:(
    Опции темы
magataka
Дата 23.5.2015, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 23.5.2015

Репутация: нет
Всего: нет



Здравствуйте уважаемые форумчане.
У меня вопрос по автоматическому формированию связанного списка.
Я создаю файл екселя 2003 с помощью познено связывания в среде 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("Delete", BindingFlags.InvokeMethod, null, val, null);
var args = new object[] { XlValidateList, XlValidAlertWarning, XlBetween, range, null };
val.GetType().InvokeMember("Add", BindingFlags.InvokeMethod, null, val, args);

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);

Заранее благодарен

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0416 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.