因此,我正在尝试编写一个代码,当单元格中出现特定值时将发送电子邮件。为此,我使用了一个可安装的 OnEdit 触发器,因为简单的触发器无法访问 mailApp.sendEmail。可安装触发器用于以下功能:
function myOnEdit(e){
var ss = SpreadsheetApp.getActiveSheet();
var email_finished = "abc@email.com"
var r = e.range;
var heading = ss.getrange(1,range.getcolumn()).value
if (heading == "FINISHED" && r.getvlaues() == "√") {
MailApp.sendEmail(email_finished, "SOP Review", "SOP has been finished");
}
}
我收到“e”未定义的错误。我想知道如何为可安装的 onEdit() 触发器引用事件对象。
我是一个绝对的 Javascript 菜鸟,所以请尽可能多地启发我,我的编码大师!提前致谢。
编辑:正如 Serge 所说,有很多错别字。VBA 编码的副作用!但我纠正了错别字并改变了我的做法:
function myonEdit(){
var ss = SpreadsheetApp.getActiveSheet();
var e = ss.getActiveCell();
var heading = ss.getRange(1, e.getColumn()).getValues();
var rvalue = e.getValue();
var email_finished = "abc@xyz.com";
var ui = SpreadsheetApp.getUi()
ui.alert("Are you sure?", ui.ButtonSet.OK)
if (heading == "FINISHED" && rvalue == "√") {
MailApp.sendEmail(email_finished, "SOP Review", "SOP has been finished");
}
}
我在Edit>>Current project's triggers的手动触发器上添加了这个。它在调试、发送电子邮件等时工作正常。但是,当我编辑工作表时,不会触发代码!我不确定这次我做错了什么。