处理当用户编辑单元格(例如C3)时的工作表,它将插入他/她的电子邮件(名称)。有一个只适用于一列(" C")的脚本,但当移动到另一个工作表或列(" 5或E")时,它会给出“错误 - 你没有允许调用getActiveUser(第41行)"。
因为它确实工作一次,不知道我错过了什么或为什么相同的脚本在另一张纸上根本不起作用。感谢您的帮助。
function onEdit() {
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "Sheet1" ) { //checks that we're on the correct sheet
var r = s.getActiveCell();
var email = Session.getActiveUser().getEmail();
Logger.log(email);
if( r.getColumn() == 3 ) { //checks the C column
var nextCell = r.offset(0, 1);
nextCell.setValue(email);
if( r.getColumn() == 5 ) { //checks the E column
var nextCell = r.offset(0, 1);
if( nextCell.getValue() !== '' ) //is empty?
nextCell.setValue(email);
}
}
}
答案 0 :(得分:0)
确保您是电子表格的所有者,并且您已授予运行该脚本的必要权限。
function onEdit() {
var s = SpreadsheetApp.getActiveSheet();
if (s.getName() == "Sheet2") { //checks that we're on the correct sheet
var r = s.getActiveCell();
var email = Session.getActiveUser().getEmail();
if (r.getColumn() == 3) { //checks the C column
var nextCell = r.offset(0, 1);
nextCell.setValue(email);
}
if (r.getColumn() == 5) { //checks the E column
var nextCell = r.offset(0, 1);
Logger.log(nextCell.getValue());
if (nextCell.getValue() == '') //is empty?
nextCell.setValue(email);
}
}
}