我正在尝试构建一个项目跟踪器
到目前为止,我已经创建了一个脚本,用于将电子邮件发送到在特定工作表中创建的人员列表。但是我在使用函数OnEdit以及如何在发送电子邮件时如何将单元格链接成单行的过程中挣扎。电子表格将有许多行引用不同的项目。
function sendEmails(){
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Email");
var lr = ss.getLastRow();
for (var i = 2;i<=lr;i++){
var currentEmail = ss.getRange(i, 1).getValue();
var currentClassTitle = ss.getRange(i, 3).getValue();
MailApp.sendEmail(currentEmail,currentClassTitle,"Project complete");
}
}
非常感谢您的帮助和建议。
答案 0 :(得分:1)
尝试一下:
function onEdit(e){
var ss = SpreadsheetApp.getActiveSheet(); // The sheet.
var data = ss.getDataRange().getValues(); // The data in all the cells
var row = e.range.getA1Notation().substring(1);
var email = ss.getRange("A"+row).getValue();
var body = ss.getRange("D"+row).getValue();
if (e.range.getA1Notation().substring(0,1) == "E"){
if (data[row-1][4] == "Complete" || data[row-1][4] == "Attention"){
MailApp.sendEmail(email,currentClassTitle,body);
}
}
}
编辑
我修复了我的代码,该代码过去常常发送不必要的电子邮件,并且无法正确检查已修改了哪个单元格。新代码将检查已编辑的单元格是否在E列中,以及所做的更改是将其设置为“完成”还是“注意”。如果更改是必需的,它将向该行的电子邮件发送一封电子邮件,其内容在正文行中。