Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Закрепить адрес зависимого выпадающего списка - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Закрепить адрес зависимого выпадающего списка
bss17 Дата: Суббота, 10.11.2018, 17:24 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Добрый день, уважаемые! Есть документ Гугл Таблиц, в нем написан скрипт, который при выборе выпадающего списка в столбце "А" на листе "Выход", где в качестве значений из диапазона выбран именованный диапазон "ОСНОВНАЯ", в столбце "В" выводит выпадающий список с соответствующим именованным диапазоном, выбранным в столбце "А".
Мне Оооочень нужна Ваша помощь сделать так, чтобы диапазоны были зафиксированы и предопределены. Выводить список из именованного диапазона "ОСНОВНАЯ" в ячейке "А17", а зависимый список с соответствующим именованным диапазоном был в "А19".
Пожалуйста, не откажите в помощи!
Ссылка на файл с доступом на редактирование: Ссылка
[vba]
Код
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);
  }
}
[/vba]
 
Ответить
СообщениеДобрый день, уважаемые! Есть документ Гугл Таблиц, в нем написан скрипт, который при выборе выпадающего списка в столбце "А" на листе "Выход", где в качестве значений из диапазона выбран именованный диапазон "ОСНОВНАЯ", в столбце "В" выводит выпадающий список с соответствующим именованным диапазоном, выбранным в столбце "А".
Мне Оооочень нужна Ваша помощь сделать так, чтобы диапазоны были зафиксированы и предопределены. Выводить список из именованного диапазона "ОСНОВНАЯ" в ячейке "А17", а зависимый список с соответствующим именованным диапазоном был в "А19".
Пожалуйста, не откажите в помощи!
Ссылка на файл с доступом на редактирование: Ссылка
[vba]
Код
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);
  }
}
[/vba]

Автор - bss17
Дата добавления - 10.11.2018 в 17:24
doober Дата: Суббота, 10.11.2018, 20:39 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 983
Репутация: 340 ±
Замечаний: 0% ±

Excel 2010
Добрый.
Не на редактирование, а на просмотр Вы дали доступ.Меняйте код сами.
[vba]
Код
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);
}
}
[/vba]


 
Ответить
СообщениеДобрый.
Не на редактирование, а на просмотр Вы дали доступ.Меняйте код сами.
[vba]
Код
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);
}
}
[/vba]

Автор - doober
Дата добавления - 10.11.2018 в 20:39
bss17 Дата: Суббота, 10.11.2018, 20:52 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Добрый.
Спасибо огромное!!!
 
Ответить
Сообщение
Добрый.
Спасибо огромное!!!

Автор - bss17
Дата добавления - 10.11.2018 в 20:52
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!