修改Google Apps Script:按指定用户与列插入对应时间戳
自定义Google Sheet编辑时间戳脚本修改方案
以下是满足需求的修改后代码,仅在指定工作表、指定编辑者编辑指定列时,在对应行的目标列插入带用户名的时间戳:
function onEdit(e) { const range = e.range; const sheet = range.getSheet(); const headerRows = 1; // 忽略表头行,且仅在目标工作表生效 if (range.getRow() <= headerRows || sheet.getName() !== "2022 Agreement Tracker") return; const editUser = e.user.getUsername(); // 替换成你的邮箱/用户名,用于识别"我"的编辑操作 const myUsername = "your-email@example.com"; const editCol = range.getColumn(); const timestamp = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "M/d/yy - h:mm a - "); const timestampText = timestamp + editUser; // 判断编辑列和编辑者,设置对应目标列的时间戳 if (editUser === myUsername && editCol >= 6 && editCol <= 18) { // 我编辑F-R列(6-18列),在AA列(27列)插入时间戳 sheet.getRange(range.getRow(), 27).setValue(timestampText); } else if (editUser !== myUsername && editCol >=25 && editCol <=26) { // 同事编辑Y-Z列(25-26列),在AB列(28列)插入时间戳 sheet.getRange(range.getRow(), 28).setValue(timestampText); } }
关键修改说明
- 编辑者识别:将
myUsername变量替换为你自己的Google账号用户名/邮箱,用于区分你和同事的操作 - 列范围判断:F-R列对应列号6到18,Y-Z列对应列号25到26
- 目标列设置:AA列是第27列,AB列是第28列,根据条件写入对应的单元格
- 逻辑优化:提前判断表头和工作表,不符合条件直接退出,提升脚本效率
内容的提问来源于stack exchange,提问作者Tiffany Meinhardt
相关产品推荐
相关产品推荐

