Проверка данных из другого диапазона электронных таблиц - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть таблица A на Googlesheet с диапазоном, например, списком городов. У меня есть электронная таблица B на Googlesheet, где я хотел бы использовать проверку данных, подтверждающую из другого файла.

Цель Цель состоит в том, чтобы «спрятать» или сделать его менее доступным, если я Использование защиты / скрытия при загрузке в Excel удаляет защиту, и она не защищена.

Я подумал, что мог бы использовать пользовательскую функцию для установки dataValidation, и она работает, но если я добавлю город в электронную таблицу A, это не будет отражено в предыдущие ячейки.

Опция 1 Это работает, но правило проверки не обновляется

var sheetA = SpreadsheetApp.openById("spread-a").getSheetByName("Data");
var currentSpreadsheet = SpreadsheetApp.getActive();
var rule = SpreadsheetApp.newDataValidation().requireValueInList(dataSheet.getRange('Cities').getValues()).build();
getActiveSpreadsheet().getActiveCell().setDataValidation(rule);

Опция 2

Пользовательская функция не работает * с использованием ее в качестве формулы * = getList ('Cities') **

function getList(name) {
  var cell = SpreadsheetApp.getActiveSpreadsheet().getActiveCell();
  var rule = SpreadsheetApp.newDataValidation().requireValueInList(dataSheet.getRange(name).getValues()).build();
  cell.setDataValidation(rule);
  return cell
}
...