Google apps script 在谷歌电子表格中更改单元格时发送电子邮件

Google apps script 在谷歌电子表格中更改单元格时发送电子邮件,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我正在尝试为谷歌电子表格设置一个脚本,每当M列中的一个单元格被修改为“y”时,该脚本将向特定的人发送电子邮件。我找到了这个剧本, 我正试图修改它以满足我的需要,但我在让它工作时遇到了一个问题。这是我现在的剧本 function onEdit(e){ Logger.log(e) var ss = SpreadsheetApp.getActiveSpreadsheet(); Logger.log(ss) var sheet = ss.getActiveSheet(); Logge

我正在尝试为谷歌电子表格设置一个脚本,每当M列中的一个单元格被修改为“y”时,该脚本将向特定的人发送电子邮件。我找到了这个剧本, 我正试图修改它以满足我的需要,但我在让它工作时遇到了一个问题。这是我现在的剧本

function onEdit(e){
  Logger.log(e)
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  Logger.log(ss)
  var sheet = ss.getActiveSheet();
  Logger.log(sheet)
  var cell = ss.getActiveCell().getA1Notation();
  Logger.log(cell)
  var row = sheet.getActiveRange().getRow();
  Logger.log(row)
  var column = sheet.getActiveRange().getColumn();
  Logger.log(column)
  var cellvalue = ss.getActiveCell().getValue().toString();
  Logger.log(cellvalue)
  var recipients = "08cylinders@gmail.com"; //email address will go here
  var message = '';
  if(cell.indexOf('M')!=-1){ 
message = sheet.getRange('M'+ sheet.getActiveCell().getRowIndex()).getValue()
} 
  Logger.log(message)
  Logger.log(cell)
  var subject = 'Update to '+sheet.getName();
  var body = sheet.getName() + ' has been updated. Visit ' + ss.getUrl() + to view the changes on row: ' + row; //New comment: «' + cellvalue + '». For   message: «' + message + '»';
  MailApp.sendEmail(recipients, subject, body);
} 
如果有人知道我错过了什么,我将非常感谢任何帮助

谢谢,


Victor

我认为这可能会解决您的活动问题:

function onEdit(e) {
var ssActive = e.source;
var ssActiveRange = ssActive.getActiveRange();
var ssActiveRangeVal = ssActiveRange.getValue();
var ActiveRow = ssActiveRange.getRow(); // if needed to put on body's message
var ActiveColumn = ssActiveRange.getColumn();

if((ssActiveRangeVal=='y' || ssActiveRangeVal=='Y') && ActiveColumn==13){ // ActiveColumn==13 for M
  // write down your mail code here
}

}

您无法从onEdit触发器发送电子邮件。您需要做的是将编辑内容保存为文档属性,然后设置一个1分钟的基于时间的触发器,以电子邮件形式发送属性内容并刷新队列。

Hi。我不太明白你的意思。你能再解释一下吗?谢谢,你好。谢谢你。我尝试了一下,虽然我可以让它手动运行,但如果我设置了触发器,它就不起作用了。你有什么想法吗?