【发布时间】:2017-03-10 20:39:51
【问题描述】:
所以,我正在尝试编写一个代码,当单元格中出现特定值时将发送电子邮件。为此,我使用了一个可安装的 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 菜鸟,所以请尽可能多地启发我的编码大师!提前致谢。
编辑: 正如塞尔吉所说,有一堆错别字。 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");
}
}
我在编辑>>当前项目的触发器的手动触发器上添加了这个。它在调试、发送电子邮件等时工作正常。但是,当我编辑工作表时,不会触发代码!我不确定这次我做错了什么。
【问题讨论】:
-
如果您从代码编辑器运行代码,则
e未定义。如果这是问题所在,人们总是这样做。
标签: google-apps-script google-sheets gs-installable-triggers