Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 相关下拉列表_Google Apps Script_Google Sheets_Drop Down Menu_Scripting - Fatal编程技术网

Google apps script 相关下拉列表

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”列中,我有一个由“Livery”和“Operator”组成的下拉列表,依赖下拉列表位于“K”列中,该列列出了取决于选择了Livery还是Operator的相关详细信息


但是,,我有第三项要添加到“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);
    }
}