Страницы: 1
RSS
Скрипт Гугл Таблицы, Помогите изменить алгоритм определения ячейки зависимых выпадающих списков
 
Добрый день, уважаемые! Извините, что прошу помощи по совершенно другому инструменту, но думаю Ваших знаний должно быть достаточно, чтобы мне помочь. Есть документ Гугл Таблиц, в нем написан скрипт, который при выборе выпадающего списка в столбце "А" на листе "Выход", где в качестве значений из диапазона выбран именованный диапазон "ОСНОВНАЯ", в столбце "В" выводит выпадающий список с соответствующим именованным диапазоном, выбранным в столбце "А".
Мне Оооочень нужна Ваша помощь сделать так, чтобы диапазоны были зафиксированы и предопределены. Выводить список из именованного диапазона "ОСНОВНАЯ" в ячейке "А17", а зависимый список с соответствующим именованным диапазоном был в "А19".
Пожалуйста, не откажите в помощи!
Ссылка на файл с доступом на редактирование: Ссылка
Текст скрипта:
Код
function depDrop_(range, sourceRange){
  var rule = SpreadsheetApp.newDataValidation().requireValueInRange(sourceRange, true).build();
  range.setDataValidation(rule);
}
function onEdit (){
  var aCell = SpreadsheetApp.getActiveSheet().getActiveCell();
  var aColumn = aCell.getColumn();
  
  if (aColumn == 1 && aCell.getValue() == "") {
    var range = SpreadsheetApp.getActiveSheet().getRange(aCell.getRow(), aColumn + 1);
    range.clearDataValidations();
    range.clearContent();
    return;
  }
  
  if (aColumn == 1 && SpreadsheetApp.getActiveSheet()){
    var range = SpreadsheetApp.getActiveSheet().getRange(aCell.getRow(), aColumn + 1);
    var sourceRange = SpreadsheetApp.getActiveSpreadsheet().getRangeByName(aCell.getValue());
    depDrop_(range, sourceRange);
  }
}
 
Цитата
bss17 написал:
по совершенно другому инструменту
раз понимаете может вам поискать профильный форум или сюда http://www.excelworld.ru/forum/23?
По вопросам из тем форума, личку не читаю.
 
Добрый.
Так должно работать.
Код
function depDrop_(range, sourceRange){
  var rule = SpreadsheetApp.newDataValidation().requireValueInRange(sourceRange, true).build();
  range.setDataValidation(rule);
}
function onEdit (e){
  var A1Notation=e.range.getA1Notation();
 if ( A1Notation=='A17'){
  var range = e.range.offset(1, 0);
      range.clearDataValidations();
    range.clearContent();
      var sourceRange = SpreadsheetApp.getActiveSpreadsheet().getRangeByName(e.range.getValue().replace(' ',''));
    depDrop_(range, sourceRange); 
 }
}
 
doober, СПАСИБО ОГРОМНОЕ!!! Самое крутое решение выпадающих списков!!!
Страницы: 1
Наверх