You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Sheets编辑日志函数中记录编辑行首列的值?

修改Google Sheets变更日志函数,新增被编辑行第一列值记录

要实现需求只需两步操作:

  • 新增member变量,获取当前编辑单元格所在行的第一列值
  • 更新日志表头和记录行,将该值纳入日志内容

关键代码说明

用以下代码定义member变量,即可实现目标功能:

var member = e.range.getSheet().getRange(e.range.getRow(), 1).getValue();

逻辑说明:通过e.range定位当前编辑单元格,获取其所在行号后,定位到该行第一列(列索引为1),最终取出对应单元格的值。

修改后的完整函数代码

function onEdit(e) {
  var timestamp = new Date();
  var user = e.user;
  var cell = e.range.getA1Notation();
  var oldValue = e.oldValue;
  var newValue = e.value;
  var sheetName = e.source.getActiveSheet().getName();
  // 新增:获取被编辑行第一列的值
  var member = e.range.getSheet().getRange(e.range.getRow(), 1).getValue();

  var logSheet = e.source.getSheetByName("Edit Log");

  if (logSheet == null) {
    logSheet = e.source.insertSheet("Edit Log");
    // 更新表头,新增"第一列内容"字段(可根据实际需求修改名称)
    logSheet.appendRow(["Timestamp", "User", "Cell", "Old Value", "New Value", "Sheet Name", "第一列内容"]);
  }
  // 仅记录"Master Census"工作表的编辑操作
  if (sheetName == "Master Census") {
    // 更新记录行,将member值加入日志数组
    logSheet.appendRow([timestamp, user, cell, oldValue, newValue, sheetName, member]); 

  } else {
    return;
  }

}

补充说明

  • 如果编辑的单元格本身就是第一列,member会直接记录修改后的新值(因为getValue()在编辑完成后执行)
  • 该函数属于Google Sheets的简单触发函数,无需额外授权,只要编辑者拥有表格编辑权限即可正常运行

内容的提问来源于stack exchange,提问作者lchelp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 18:02:35