如何让Google Sheets中Apps Script生成的下拉列表默认显示首选项
解决Google Sheets下拉列表默认显示第一个选项的问题
修改要点:
- 修正空白判断逻辑:原代码错误判断整个B2:B区域是否为空,应改为判断当前操作的B列单元格是否为空。
- 添加默认值设置:在给C列添加下拉验证规则后,直接为该单元格设置列表的第一个选项值。
修改后的完整代码:
var sheet = event.source.getActiveSheet(); var actRng = event.source.getActiveRange(); var index = actRng.getRowIndex(); var cindex = actRng.getColumnIndex(); // 判断当前操作的B列单元格是否为空 var colrange = actRng.isBlank(); if(colrange){ sheet.getRange(index,4).clearContent(); sheet.getRange(index,3).clearDataValidations(); } else{ var date = Utilities.formatDate(new Date(),"EST", "MMMM-dd-yyyy"); var list=["New", "Ongoing", "Done", "On-Hold"]; var rule=SpreadsheetApp.newDataValidation().requireValueInList(list).build(); sheet.getRange(index,3).setDataValidation(rule); // 为C列单元格设置默认值为列表第一个选项 sheet.getRange(index,3).setValue(list[0]); sheet.getRange(index,4).setValue(date); }
说明:
- 调整空白判断逻辑后,只有当当前选择的B列单元格被清空时,才会清除对应行的日期和C列的验证规则,逻辑更准确。
- 通过
setValue(list[0])直接给C列单元格赋值列表第一个元素"New",实现下拉列表创建后自动显示默认选项的效果。
内容的提问来源于stack exchange,提问作者Anushka Nahid
相关产品推荐
相关产品推荐

