Google apps script 谷歌文档更新时如何向当前经理发送电子邮件?

Google apps script 谷歌文档更新时如何向当前经理发送电子邮件?,google-apps-script,google-sheets,Google Apps Script,Google Sheets,这个想法是当google文档更新为一个新行(例如客户端ID)时,向该客户端的经理发送一封信。在我的文档中,我有客户ID列(1列)和电子邮件列(13列)。 这是我正在使用的代码: function sendEmails() { var sheet = SpreadsheetApp.getActiveSheet(); var startRow = 9 // First row of data to process var numRows = sheet.getRange(13

这个想法是当google文档更新为一个新行(例如客户端ID)时,向该客户端的经理发送一封信。在我的文档中,我有客户ID列(1列)和电子邮件列(13列)。 这是我正在使用的代码:

function sendEmails() {
    var sheet = SpreadsheetApp.getActiveSheet();
    var startRow = 9 // First row of data to process
    var numRows = sheet.getRange(13,9).getValue(); // Number of rows to process is set by a formula 
    which counts rows COLUMN/ROW

    var dataRange = sheet.getRange(startRow, 9, numRows, 1);

    var data = dataRange.getValues();

    for (var i in data) {
        var row = data[i];
        var emailAddress = row[13];
        var message = 'New client';
        var subject = 'Check';
        MailApp.sendEmail(emailAddress, subject, message);
但这段代码不起作用,也不会发送带有更新的电子邮件。我可以更改什么来解决该问题?
我是编程新手,请帮助。

说明: 根据您的评论和描述,您希望在用户填写特定行时发送电子邮件

如果是这样的话,你需要一个触发器。要设置一个可安装的触发器,您可以在谷歌上搜索它或查看它,但您可以找到相关的资源

  • 从第8行开始,在第
    M列(
    13th
    列)中添加电子邮件时,以下脚本将发送电子邮件

  • 我推荐的方法是创建一个复选框,这样当用户勾选该复选框时,电子邮件就会发送。但这取决于你

解决方案:
只有当你为onEditEmail(e)
创建了一个可安装的触发器,并且仔细阅读了我提供的解释后,这才有效。

想法是当google文档更新为新行(例如客户端ID)时,向该客户端的经理发送一封信,这与你的代码不匹配。您希望手动运行该功能或设置一个
onEdit
触发器,以便用户在添加新行以发送电子邮件时?如果电子邮件位于
13列中,则需要使用
12
作为索引:
var emailAddress=row[12]
您想手动运行该功能,还是设置onEdit触发器,以便在用户添加新行以发送电子邮件时?我想设置一个onEdit触发器,但我不知道它是如何工作的。我在尝试不同的方法。我也使用12作为索引,但这无论如何都不起作用。但谢谢你,我会改变这一刻
function onEditEmail(e){
  const ss = e.source;
  const ar = e.range;
  const shn = "Sheet1"; // put the sheet name of your choice
  const as = ss.getActiveSheet(); 
  const row = ar.getRow();
  const col = ar.getColumn();
  if (as.getName()==shn && row>8 && col == 13){
   const emailAddress = ar.getValue();
   const message = 'New client';
   const subject = 'Check';
   MailApp.sendEmail(emailAddress, subject, message);   
  }
}