Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email 当单元格条件满足时,Google Sheet从列表发送电子邮件_Email_Google Apps Script_Google Sheets_Spreadsheet - Fatal编程技术网

Email 当单元格条件满足时,Google Sheet从列表发送电子邮件

Email 当单元格条件满足时,Google Sheet从列表发送电子邮件,email,google-apps-script,google-sheets,spreadsheet,Email,Google Apps Script,Google Sheets,Spreadsheet,我对脚本还是很陌生,不明白下面的脚本为什么不起作用 function sendReturnEmail(event) { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getActiveSheet(); var row = sheet.getActiveRange().getRow(); var cellvalue = ss.getActiveCell().getValue().toString();

我对脚本还是很陌生,不明白下面的脚本为什么不起作用

function sendReturnEmail(event) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var row = sheet.getActiveRange().getRow();
  var cellvalue = ss.getActiveCell().getValue().toString();
  if(event.range.getA1Notation().indexOf("K") && sheet.getRange("K" + row).getDisplayValue() == "Approved")
  {
  var rowVals = getActiveRowValues(sheet);
  var aliases = GmailApp.getAliases();
  var to = rowVals.user;
  var subject = "Allocation request approved";
  var body = "Your allocation request of " +rowVals.quantity + " cases on " + rowVals.date + " from " + rowVals.depot + " has been approved. <br \> <br \>"
    + "Regards, <br \> <br \>" +rowVals.analyst + "<br \> CPF Team";  
Logger.log(aliases);
  GmailApp.sendEmail(to,subject,body,    
                     {from: aliases[0]})
    ;
  }}

  function getActiveRowValues(sheet){
  var cellRow = sheet.getActiveRange().getRow();
  // get depot value
  var depotCell = sheet.getRange("E" + cellRow);
  var depot = depotCell.getDisplayValue();
  // get date value
  var dateCell = sheet.getRange("F" + cellRow);
  var date = dateCell.getDisplayValue();
  // get quantity value
  var quantCell = sheet.getRange("G" + cellRow);
  var quant = quantCell.getDisplayValue();
  // return an object with your values
  var analystCell = sheet.getRange("J" + cellRow);
  var analyst = analystCell.getDisplayValue();
  var userCell = sheet.getRange("O" + cellRow);
  var user = userCell.getDisplayValue();
  return {
    depot: depot,
    date: date,
    quantity: quant,
    analyst: analyst,
    user: user
  } }
}
现在,当K列中的相应单元格手动更改为“已批准”时,我希望工作表向使用上述脚本捕获的电子邮件地址发送电子邮件(该脚本工作正常)


谁能看出我做错了什么。当它运行时,我没有收到任何错误,但我没有收到电子邮件。我搜索了其他问题,但没有一个有用。非常感谢。

可能重复的脚本我已经尝试禁用了一些其他脚本,但没有起到任何作用。所有其他脚本都运行良好。如何调用函数sendReturnEmail(事件)??如果您在编辑器中手动运行它,它会发送电子邮件吗?
function onEdit() {
  var s = SpreadsheetApp.getActiveSheet();
  if( s.getName() == "Allocation Requests" ) { //checks that we're on the correct sheet
    var r = s.getActiveCell();
    if( r.getColumn() == 2) { //checks the column
      var nextCell = r.offset(0, 13);
          nextCell.setValue(Session.getEffectiveUser());
      }
  }