谷歌表格脚本开发需求:自动填充时间戳及勾选删除行
解决方案:电子表格自动时间戳+勾选删除行功能(全工作表生效)
下面是整合了两个需求的完整脚本,可直接替换原有onEdit函数:
function onEdit(e) { var activeSheet = e.source.getActiveSheet(); var activeCell = e.range; // C列录入内容时,自动填充I列时间戳(全工作表生效) if (activeCell.getColumn() === 3) { var timestampCell = activeCell.offset(0, 6); if (timestampCell.getValue() === '') { timestampCell.setValue(new Date()).setNumberFormat('MM/dd/yyyy HH:mm:ss'); } } // 勾选M列复选框时,删除当前行(全工作表生效) if (activeCell.getColumn() === 13 && activeCell.getValue() === true) { // 刷新缓存避免触发多次编辑事件 SpreadsheetApp.flush(); activeSheet.deleteRow(activeCell.getRow()); } }
关键逻辑说明
- 全工作表生效:通过
e.source.getActiveSheet()获取当前编辑的工作表,而非固定某张表,确保所有工作表都能触发逻辑。 - 时间戳功能保留:保留了你原有核心逻辑,仅优化变量命名,确保C列(第3列)录入内容且I列(偏移6列)为空时,才写入带格式的当前时间。
- 复选框删除行:检测到M列(第13列)的单元格被勾选为
true时,先刷新电子表格缓存,再删除当前行,避免编辑事件冲突导致的异常。
注意事项
- 确保M列的单元格已设置为复选框格式(可通过电子表格菜单「数据」→「数据验证」选择「复选框」配置)。
- 该脚本使用简单触发
onEdit,无需额外授权即可运行,但删除行操作不可撤销,建议先在测试表验证后再正式使用。
内容的提问来源于stack exchange,提问作者Anthony Ianucilli
相关产品推荐
相关产品推荐

