Попробуйте этот код:
function onEdit() {
var ws = SpreadsheetApp.getActiveSheet();
var name = ["Acura", "Not Acura"];
var rule = SpreadsheetApp
.newDataValidation()
.requireValueInList(name)
.build();
ws.getRange("B3").setDataValidation(rule);
model(ws);
}
function model(ss){
var makeSel = ss.getRange("B3").getValue();
var acura = ["MDX","RDX","NSX","ILX","RLX","TLX"];
var notAcura = ["model1", "model2", "model3"];
if (makeSel == "")
return 1;
else if (makeSel == "Acura"){
var rule = SpreadsheetApp
.newDataValidation()
.requireValueInList(acura)
.build();
ss.getRange("D3").setDataValidation(rule);
}
else if (makeSel == "Not Acura"){
var rule = SpreadsheetApp
.newDataValidation()
.requireValueInList(notAcura)
.build();
ss.getRange("D3").setDataValidation(rule);
}
}
Это изменит список моделей на основе выбора для списка, для тестирования я только что создал пустой лист и заполнил B3 и D3.Это приведет к тому, что изменение произойдет в реальном времени (из-за onEdit()
).Вы можете добавить новые списки для разных марок и моделей, и вам нужно будет добавить операторы else if
, но они будут просто добавлять код, который вы опубликовали в своем вопросе, с новым именем списка.
Пожалуйста, дайте мне знать, если это нужно уточнить.