请求修改Google Sheets宏:实现输入内容/点击复选框自动取消隐藏下一行
Google Sheets 动态显示下一行脚本修改方案
针对你的两个需求,分别提供修改后的脚本方案:
一、点击复选框触发显示下一行
你录制的宏硬编码了固定行号,改成下面的代码就能支持任意操作行:
function UnhideNext() { const spreadsheet = SpreadsheetApp.getActive(); const sheet = spreadsheet.getActiveSheet(); const currentRow = spreadsheet.getCurrentCell().getRow(); // 显示当前行的下一行(如果隐藏的话) sheet.showRows(currentRow + 1); }
修改说明:
- 移除了多余的单元格激活操作,直接获取当前操作单元格的行号
- 把固定的
51替换成currentRow + 1,确保点击任意行的复选框,都会显示它的下一行 showRows方法如果目标行已经显示,执行也不会有问题,无需额外判断
二、输入数据后自动显示下一行
这个需要用到onEdit触发器,当单元格填入内容时自动触发:
function onEdit(e) { const sheet = e.source.getActiveSheet(); const editedRow = e.range.getRow(); const nextRow = editedRow + 1; // 仅当编辑的单元格有内容时触发 if (e.value && sheet.isRowHiddenByUser(nextRow)) { sheet.showRows(nextRow); } }
使用说明:
- 这个函数会自动绑定到表格的编辑事件,不需要手动执行
- 只有当编辑的单元格填入了内容,且下一行处于隐藏状态时,才会显示下一行
- 对任意行的输入操作都生效,符合你的多区块隐藏需求
配置提示
- 给需要触发的复选框绑定修改后的
UnhideNext函数:右键复选框 → 「分配脚本」→ 输入UnhideNext onEdit函数不需要手动绑定,保存后自动生效,注意表格要启用脚本权限
内容的提问来源于stack exchange,提问作者Hawq
相关产品推荐
相关产品推荐

