如何实现当Google表格一行中两个复选框均为真时自动删除该行?
Google表格自动删除双复选框勾选行的宏实现
一、编写脚本
打开你的Google表格,点击顶部菜单栏的「扩展程序」→「Apps脚本」,将默认代码替换为以下内容:
function deleteRowsWhenBothChecked() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const dataRange = sheet.getDataRange(); const values = dataRange.getValues(); // 从最后一行往前遍历,避免删除行后索引混乱 for (let i = values.length - 1; i >= 0; i--) { const rowIndex = i + 1; // 表格行号从1开始 const colA = values[i][0]; // A列对应数组第0位索引 const colH = values[i][7]; // H列对应数组第7位索引 // 检查A列和H列的复选框是否均为勾选状态(值为true) if (colA === true && colH === true) { sheet.deleteRow(rowIndex); } } }
二、设置可安装触发器
为让脚本在编辑表格时自动触发,需配置可安装触发器:
- 在Apps脚本编辑器界面,点击左侧的「触发器」图标(时钟形状)
- 点击「添加触发器」按钮
- 在配置面板中选择:
- 要运行的函数:
deleteRowsWhenBothChecked - 部署类型:「Head deployments」
- 事件源:「从电子表格」
- 事件类型:「编辑时」
- 要运行的函数:
- 点击「保存」,按提示完成权限授权(首次运行需允许脚本访问你的表格)
三、注意事项
- 确保A列和H列的复选框是通过「数据验证」设置的(值为布尔型
true/false) - 脚本采用倒序遍历行,避免删除行后后续行索引偏移导致漏删
- 若表格有表头,可根据表头行数调整循环起始位置(比如表头占1行,就从
values.length - 2开始遍历)
内容的提问来源于stack exchange,提问作者GIANLUCA GERVASONI
相关产品推荐
相关产品推荐

