Google Sheets编辑T列时如何根据M列状态值自动隐藏对应行
修改后可正常触发的脚本
// 数据所在工作表名称 var SHEET = "DLT"; // 触发行隐藏的状态值 var HIDE_VALUE = "Closed"; // 监听编辑操作的列:T列对应列号20 var MONITOR_EDIT_COLUMN = 20; // 状态值所在列:M列对应列号13 var STATUS_COLUMN = 13; function onEdit (e) { var ss = SpreadsheetApp.getActiveSpreadsheet(); var activeSheet = ss.getActiveSheet(); // 校验是否在目标工作表操作 if(SHEET == activeSheet.getName()){ var editCell = ss.getActiveCell(); // 校验编辑的是否为T列单元格 if(editCell.getColumn() == MONITOR_EDIT_COLUMN){ // 获取当前编辑行对应M列的状态值 var statusValue = activeSheet.getRange(editCell.getRow(), STATUS_COLUMN).getValue(); // 状态匹配则隐藏当前行 if(statusValue == HIDE_VALUE){ activeSheet.hideRow(editCell); } } } }
核心修改说明
- 拆分原有单一列号常量为两个独立配置:分别定义需要监听编辑的T列、读取状态的M列,逻辑更清晰可灵活调整
- 放弃读取编辑单元格本身的值,改为读取编辑行对应M列的状态值做隐藏判断,匹配你表格自动更新状态的逻辑
- 保留原有工作表校验逻辑,不会对其他工作表产生干扰
注意:如果你的表格M列中关闭状态为全小写
closed等其他写法,只需修改HIDE_VALUE的取值和实际状态一致即可。
内容的提问来源于stack exchange,提问作者RafaNHS
相关产品推荐
相关产品推荐

