编辑任意工作表触发Verify表对应行时间戳问题求助
解决方法
问题根源是代码未校验触发编辑事件的工作表是否为Verify,导致任意工作表的第9列被编辑时,都会在Verify表对应行生成时间戳。修改后的代码如下:
function onEdit(e) { // 获取当前触发编辑的工作表 var activeSheet = e.range.getSheet(); var row = e.range.getRow(); var col = e.range.getColumn(); // 仅当编辑的是Verify表的第9列,且对应第11列无值时才添加时间戳 if (activeSheet.getName() === "Verify" && col === 9) { var stampCol = activeSheet.getRange(row, 11); if (!stampCol.getValue()) { var tz = e.source.getSpreadsheetTimeZone(); var date = Utilities.formatDate(new Date(), tz, 'dd-MM-yyyy hh:mm:ss'); stampCol.setValue(date); } } }
关键修改说明
- 新增
activeSheet变量获取当前编辑的工作表,替代直接固定获取Verify表的逻辑 - 增加判断条件
activeSheet.getName() === "Verify",确保只有编辑Verify表时才执行时间戳逻辑 - 调整逻辑顺序,先判断工作表和列,再检查第11列是否为空,避免不必要的范围获取
内容的提问来源于stack exchange,提问作者dexi
相关产品推荐
相关产品推荐

