Скрипты
Разработка

ComboBox в экселовской ячейке

Добрый день.
Прошу помощи в таком вопросе - в скрипте формирую вывод в экселовскую таблицу. Надо
в одну колонку во все ячейки вставить элемент ComboBox (выбор фамилии ответственного).
Как это сделать?

Нравится

4 комментария

В принцыпе - это возможно. Вам нужно добавить Data Validation для ячейки (или массива ячеек) с типом List. Внутри этого списка добавить статические значения "А", "Б", "В". Если такая ячейка получит фокус, она будет выглядеть как выпадающий список.

Или вот пример на PowerShell где список заполняется из массива ячеек, который мы укажем:

$missing = [system.type]::missing
$ws.Range("A1").Validation.Delete()
$ws.Range("A1").Validation.Add(3, 1, $missing, "=STATE", $missing)

Также рекомендую поискать доп. информацию по ключевому слову Excel Data Validation

Нет, не понял. Вот мой скрипт:

var Excel = new ActiveXObject('Excel.Application');
var Workbook = Excel.Workbooks.Add();

List2 = Workbook.Sheets.Add(); //создаем лист с вспомогательной информацией для заполнения справочника
List2.Name = "DICT"; //обзываем лист

List2.Columns(1).ColumnWidth = 80;
List2.Cells(1,1).Value = "FIO";
List2.Cells(2,1).Value = "NAME2";
List2.Cells(3,1).Value = "NAME1";

var Sheet = Workbook.Sheets.Add(); // это основной лист для выходной таблицы

...

<ЦИКЛ_ЗАПОЛНЕНИЯ_КОЛОНОК_ТАБЛИЦЫ_СТРОКИ_ROWNUM > {
..
Excel.Range(Sheet.Cells(RowNum,10),Sheet.Cells(RowNum,10)).Validation;
Excel.Range(Sheet.Cells(RowNum,10),Sheet.Cells(RowNum,10)).Validation.Delete();
Range(Sheet.Cells(RowNum,10),Sheet.Cells(RowNum,10)).Validation.Add( ??? );

Вот это не понимаю - как связать Validation с ячейками справочника "DICT!A2:A3" ?

}

все получилось.
Спасибо!

Показать все комментарии