Google Sheets Script 优化:仅在Trip 1至Trip 3工作表运行的简洁代码
优化后脚本代码
const SORT_DATA_RANGE = "A4:K"; const SORT_ORDER = [ {column: 2, ascending: false}, // 按第二列降序排序 {column: 6, ascending: true}, // 按第六列升序排序 {column: 7, ascending: true}, // 按第七列升序排序 {column: 8, ascending: true}, // 按第八列升序排序 ]; // 统一配置触发排序的工作表,后续新增适配工作表只需往该数组添加名称即可 const ALLOWED_SHEETS = ["Trip 1", "Trip 2", "Trip 3"]; function onEdit(event){ const editedRange = event.range; const editedSheet = editedRange.getSheet(); // 合并判断条件:仅当编辑第二列、且当前工作表属于允许列表时执行排序 if(editedRange.getColumn() === 2 && ALLOWED_SHEETS.includes(editedSheet.getName())){ const range = editedSheet.getRange(SORT_DATA_RANGE); range.sort(SORT_ORDER); } }
优化说明
- 新增
ALLOWED_SHEETS常量数组统一管理需要触发逻辑的工作表,无需重复编写多分支判断,后续新增适配工作表直接在数组内添加对应名称即可 - 用数组
includes()方法一次性完成工作表名称匹配,合并所有冗余的else if分支,代码精简度和可维护性大幅提升 - 为原有常量补充
const声明,符合JS语法规范,避免常量被意外修改 - 完全保留原有脚本的触发规则、排序范围、排序逻辑,运行效果和原脚本完全一致
内容的提问来源于stack exchange,提问作者Hibernian
相关产品推荐
相关产品推荐

