简单的编辑触发器不起作用 - 尝试在单个单元格达到特定值时获取通知

问题描述 投票:0回答:2

我刚刚开始使用 Google App Scripts,我看到了很多有关触发器的问题,但对我来说似乎都非常先进。

我有一个简单的脚本,只要该单个单元格值超过阈值(在本例中为 250),就会向我发送电子邮件。该单元格是 B252,其中有一个公式(B2 到 B251 的总和)。

function sendEmail() {
  var sheet = SpreadsheetApp.getActive().getSheetByName("FormResponses");
  var value = sheet.getRange("B252").getValue();

    if (value >= 250) {
      var emailAddress = "my_email_address";
      var subject = "test";
      var message = "test"
      
      MailApp.sendEmail(emailAddress, subject, message);
      sheet.getRange("B253").setValue("NOTIFICATION SENT");
  }
}

当我通过编辑器或菜单运行代码时,代码运行良好。我设置了一个触发器,选择“编辑时”事件类型。然后我尝试编辑表中的任何内容,但触发器似乎不起作用。在执行历史记录中,我没有看到任何触发器类型的执行。我在这里缺少什么?

谢谢

google-apps-script triggers
2个回答
0
投票

如果使用简单触发器,则必须调用该函数

onEdit


0
投票

尝试一下并使其成为可安装的触发器:

function sendEmail(e) {
  const sh = e.range.getSheet();
  if(sh.getName() == "FormResponses" && sh.getRange("B252").getValue() > 249) {
      var emailAddress = "my_email_address";
      var subject = "test";
      var message = "test"
      MailApp.sendEmail(emailAddress, subject, message);
      sh.getRange("B253").setValue("NOTIFICATION SENT");
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.