То, что вы хотите, может быть достигнуто с помощью следующего скрипта, который состоит из двух функций: createDropdown()
и onEditTrigger(e)
.
var ss = SpreadsheetApp.getActiveSpreadsheet()
var master = ss.getSheetByName("Master Calls Sheet");
var countries = ss.getSheetByName("countries");
var options = countries.getRange(2, 1,countries.getLastRow()-1,2).getValues();
var continentsList = ['Americas','Africa','Asia'];
Если вы хотите добавить в функцию другие континенты, вам следует изменить только переменную var continentsList
.
-
createDropdown()
функция:
function createDropdown() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var rangeRule = SpreadsheetApp.newDataValidation().requireValueInList(continentsList,true).build();
ss.getRange('A9').setDataValidation(rangeRule);
}
Вышеупомянутая функция используется для создания выпадающего списка со всеми континентами, и она будет создана на A9 cell
на Master Calls Sheet
.
- Функция
onEditTrigger(e)
:
function onEditTrigger(e) {
var countries = e.range.getSheet();
var cellValue = e.range.getValue();
var k =0;
for (k=0; k<continentsList.length;k++) {
if (cellValue == continentsList[k]) {
countries.getRange("B9:B").clear();
var j=0;
for (var i=0; i<options.length; i++)
if (options[i][0]== continentsList[k]) {
j++;
countries.getRange(j+8,2).setValue(options[i][1]);
}
}
}
}
Вышеприведенная функция представляет собой устанавливаемый триггер, который означает, что каждый время изменения значения из 1040 * будет срабатывать. Он работает, просматривая continentsList
, и проверяет, соответствует ли значение из каждой итерации тому, которое выбрано из выпадающего списка. Если значения соответствуют, то перечислены страны каждого континента.
Значения появятся в B column
, начиная с B9
, в Master Calls Sheet
.
Триггер должен быть установить со следующими свойствами:
Более того, я предлагаю вам проверить следующие ссылки, поскольку они могут помочь в вашем будущем развитии: