我刚刚开始使用 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");
}
}
当我通过编辑器或菜单运行代码时,代码运行良好。我设置了一个触发器,选择“编辑时”事件类型。然后我尝试编辑表中的任何内容,但触发器似乎不起作用。在执行历史记录中,我没有看到任何触发器类型的执行。我在这里缺少什么?
谢谢
如果使用简单触发器,则必须调用该函数
onEdit
。
尝试一下并使其成为可安装的触发器:
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");
}
}