我的工作表中有一个“编辑者”列。因此,我想输入编辑相关行的人员的电子邮件地址。
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”列中?
尝试使用可安装的触发器而不是简单的触发器。
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
}