如何在编辑单元格单元格后插入用户电子邮件

时间:2017-11-17 21:23:43

标签: google-apps-script google-sheets

处理当用户编辑单元格(例如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);
   } 
  }
 }

1 个答案:

答案 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);
        }
    }
}