您的问题可以通过使用 Apps 脚本和编写脚本来解决。
第一个功能是使用.newDataValidation() 方法创建具有所需值的下拉菜单。
function createDropdown() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var rangeRule = SpreadsheetApp.newDataValidation().requireValueInList(['Livery','Operator','Name'],true).build();
ss.getRange('I1').setDataValidation(rangeRule);
}
第二个函数将用于根据K cell 中的选择更新I cell。
//the installable trigger
function onEditTrigger(e) {
var sheet = e.range.getSheet();
var cellValue = e.range.getValue();
var liveryOptions = ['livery1', 'livery2', 'livery3', 'livery4'];
var operatorOptions = ['operator1', 'operator2', 'operator3', 'operator4'];
if (cellValue == 'Name') {
SpreadsheetApp.getUi().alert('Input your name in the K1 cell');
sheet.getRange("K1").setDataValidation(null);
sheet.getRange("K1").clear();
sheet.getRange("K1").setBackground("yellow");
} else if (cellValue == 'Operator') {
sheet.getRange("K1").setBackground("white").setValue("Choose an option");
var dataValidation = SpreadsheetApp.newDataValidation().requireValueInList(operatorOptions, true).build();
sheet.getRange("K1").setDataValidation(dataValidation);
} else if (cellValue == 'Livery') {
sheet.getRange("K1").setBackground("white").setValue("Choose an option");
var dataValidation = SpreadsheetApp.newDataValidation().requireValueInList(liveryOptions, true).build();
sheet.getRange("K1").setDataValidation(dataValidation);
}
}
为了使您的下拉选择起作用,您应该在第二个函数中添加一个installable trigger。
您可以转到项目的触发器并创建具有以下属性的新触发器:
当您运行脚本时,您只需运行createDropdown() 函数,因为触发器将在后台连续运行。
下面是脚本的工作原理:
当Livery被选中
当Name被选中时Alert prompt会出现要求用户在单元格上输入数据
此外,以下链接可能对您有所帮助:
Installable Triggers;
DataValidation Class;
Apps Script.