У меня есть таблица 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
}