Google apps script 相关下拉列表
我目前正在设计一个依赖下拉列表,我已经使用间接函数设置了它。在“I”列中,我有一个由“Livery”和“Operator”组成的下拉列表,依赖下拉列表位于“K”列中,该列列出了取决于选择了Livery还是Operator的相关详细信息Google apps script 相关下拉列表,google-apps-script,google-sheets,drop-down-menu,scripting,Google Apps Script,Google Sheets,Drop Down Menu,Scripting,我目前正在设计一个依赖下拉列表,我已经使用间接函数设置了它。在“I”列中,我有一个由“Livery”和“Operator”组成的下拉列表,依赖下拉列表位于“K”列中,该列列出了取决于选择了Livery还是Operator的相关详细信息 但是,,我有第三项要添加到“I”列的下拉列表中,即“名称”,但如果选中,我希望这需要手动输入到“K”列中-如果选择了“交货”或“运营商”,是否可以让工作表为我提供相关下拉列表,但如果选择了“名称”,则为手动输入提供空白单元格?您的问题可以通过使用应用程序脚本和编写
但是,,我有第三项要添加到“I”列的下拉列表中,即“名称”,但如果选中,我希望这需要手动输入到“K”列中-如果选择了“交货”或“运营商”,是否可以让工作表为我提供相关下拉列表,但如果选择了“名称”,则为手动输入提供空白单元格?您的问题可以通过使用应用程序脚本和编写脚本 第一个函数是使用.newDataValidation方法创建包含所需值的下拉菜单 第二个函数将用于根据从K单元中选择的内容更新I单元 为了使下拉选择正常工作,您应该在第二个函数中添加一个 您可以转到项目的触发器并创建具有以下属性的新触发器: 运行脚本时,只需运行createDropdown函数,因为触发器将在后台连续运行 以下是脚本的工作原理: 当选择“制服”时 选择“名称”后,将显示一条警报提示,要求用户在单元格中输入数据 此外,以下是一些可能对您有所帮助的链接: ) )
如果可能,则仅通过脚本-否则不
function createDropdown() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var rangeRule = SpreadsheetApp.newDataValidation().requireValueInList(['Livery','Operator','Name'],true).build();
ss.getRange('I1').setDataValidation(rangeRule);
}
//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);
}
}