如何修改Google Sheets脚本实现任意列勾选复选框后自动隐藏行
方案1:全列生效(所有列勾选复选框都隐藏对应行)
移除原有代码的列号限制即可,代码如下:
function onEdit(e){ if (e.value != "TRUE") return; SpreadsheetApp.getActiveSheet().hideRows(e.range.rowStart); }
方案2:指定列生效(可自定义需要生效的列,更灵活)
在代码内的ALLOWED_COLUMNS数组中填写你需要生效的列号即可,列号从左到右从1开始计数(A列对应1,B列对应2,以此类推),示例代码默认支持第3、6、8列生效,可按需修改:
function onEdit(e){ // 按需修改数组内的列号 const ALLOWED_COLUMNS = [3,6,8]; if (!ALLOWED_COLUMNS.includes(e.range.columnStart) || e.value != "TRUE") return; SpreadsheetApp.getActiveSheet().hideRows(e.range.rowStart); }
可选扩展:取消勾选自动恢复行显示
如果需要取消复选框勾选后自动恢复显示对应行,可以使用以下代码:
function onEdit(e){ // 按需修改数组内的列号 const ALLOWED_COLUMNS = [3,6,8]; const activeSheet = SpreadsheetApp.getActiveSheet(); const targetRow = e.range.rowStart; if (!ALLOWED_COLUMNS.includes(e.range.columnStart)) return; e.value === "TRUE" ? activeSheet.hideRows(targetRow) : activeSheet.showRows(targetRow); }
注意事项
- 代码保存后直接生效,无需额外授权
- 若需要手动恢复被隐藏的行,选中被隐藏行的上下相邻行,右键选择「取消隐藏行」即可
内容的提问来源于stack exchange,提问作者Omar Leon
相关产品推荐
相关产品推荐

