如何获取修改每个单元格的最后一个用户的电子邮件



试图在每个单元格添加一个"滚动"的更改记录,包括用户电子邮件、时间、旧值和新值,所以我编写了以下脚本:

/**
* The event handler triggered when editing the spreadsheet.
* @param {Event} e The onEdit event.
*/
function onEdit(e){
// Set a comment on the edited cell to indicate when it was changed.
var range = e.range;
var row = range.getRow();
var column = range.getColumn();
// Get the email address of the person running the script.
var email = Session.getActiveUser().getEmail();
Logger.log("data changed");
range.setNote(range.getNotes().concat('Last modified at: ' + new Date() + ' by: ' + email + ' from: ' + String(e.oldValue) + ' to: ' + range.getValue() + "n"));
}

我有以下注意事项,这不是我所期望的:

  1. 用户电子邮件根本不显示
  2. 如果我复制/粘贴了多个单元格,则旧值显示为未定义,所有单元格的新值仅显示第一个单元格的新数值

我的工作表可以在这里打开

您添加的信息已经被自动记录,并且可以通过右键单击单元格并选择相应的菜单项来使用,无论如何,与可安装的编辑触发器相比,简单的编辑触发器非常有限,但CCD_。不知怎么的,这已经在官方文件中记录在案了。

参考

  • https://developers.google.com/apps-script/reference/base/session#getactiveuser

相关

  • 在应用程序脚本中确定当前用户(此时最老的+7,答案为+12(
  • 谷歌电子表格:Can';t通过会话获取用户电子邮件.getActiveUser((.getEmail((
  • 会话.getActiveUser((.getEmail((不返回值
  • 设置getEmail为同一G Suite域上的用户工作的权限

相关内容

最新更新