是否可以获取当前正在处理电子表格的人员的电子邮件地址?

问题描述 投票:0回答:1

我的工作表中有一个“编辑者”列。因此,我想输入编辑相关行的人员的电子邮件地址。

function onEdit(e){
  var activeCell = e.range;
  var r = activeCell.getRow();
  var c = activeCell.getColumn();
  var sheetName = ws.getSheetName();
  ws.getRange(r, colName2colNumber(sheetName,"Edited by")).setValue(Session.getActiveUser().getEmail());
}

上面的代码块在我(电子表格的所有者)在工作表上工作正常。但是,它不适用于我通过编辑权限与工作表共享的其他人。我认为onEdit函数对共享电子表格有一些限制。

所以首先我想知道为什么onEdit在共享电子表格上不起作用?

如果onEdit有一些限制,是否还有其他功能或一般的其他方式,这使我将编辑者的电子邮件放在“ Edited by”列中?

google-apps-script google-sheets google-sheets-api google-apps
1个回答
0
投票

尝试使用可安装的触发器而不是简单的触发器。

function myfunction(e){
  e.range.getSheet().getRange(e.range.rowStart,e.range.getSheet().getRange(1,1,1,e.range.getSheet().getLastColumn()).getValues()[0].indexOf("Edited by")).setValue(Session.getActiveUser().getEmail());//This assumes that the header row is the top row
}
© www.soinside.com 2019 - 2024. All rights reserved.