我制作了一个需要帮助的脚本。这个正在获得第三行,并发送一封对我来说没有意义的电子邮件。 有一个日期单元格。我想要这种方式,它应该在该单元格中的日期为7天的那一行中发送一封电子邮件。你知道如何处理吗?所以我认为这完全是错误的。
Sheet的名称如下: 姓|姓名|日期
如果日期是7天内,我想收到一封电子邮件。
function sendEmail() {
//setup function
var ActiveSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet2');
var StartRow = 3;
var RowRange = ActiveSheet.getLastRow() - StartRow + 1;
var WholeRange = ActiveSheet.getRange(StartRow,1,RowRange,11);
var AllValues = WholeRange.getValues();
var message = "";
//iterate loop
for (i in AllValues) {
//set current row
var CurrentRow = AllValues[0];
//set HTML template for information
message =
"<p><b>Name: </b>" + CurrentRow[5] + ' ' + CurrentRow[4] + ' ' + "</p>" +
"<p><b>Department: </b>" + CurrentRow[8] + "</p>" +
"<p><b>Location: </b>" + CurrentRow[1] + "</p>" +
"<p><b>Last working day on: </b>" + CurrentRow[6] + "</p>" +
"<p><b>Exit date -contractual-: </b>" + CurrentRow[7] + "</p>" +
"<p><b>Useful links: </b>"+' ' + "</p><br><br>";
//set the row to look at
var setRow = parseInt(i) + StartRow;
//mark row as "sent"
ActiveSheet.getRange(setRow, 13).setValue("Mail sent");
}
//define who to send grants to
var SendTo = "person@domain.com";
//set subject line
var Subject = "Subject: " + CurrentRow[4] + ' ' + CurrentRow[5] + ' | Date: ' + CurrentRow[7];
//send the actual email
MailApp.sendEmail({
to: SendTo,
cc: "",
subject: Subject,
htmlBody: message,
});
}
谢谢!
答案 0 :(得分:0)
我想这就是你想要的。也许您的工作表中的图像会使其更清晰。
function sendEmail() {
var ss=SpreadsheetApp.getActive();
var ash=ss.getSheetByName('Sheet2');
var sr=3;
var vA=ash.getRange(sr,1,ash.getLastRow()-sr+1,12).getValues();
//Header Row: none,Location,None,None,Name1,Name2,LastWorkingDay,ExitDate,Department,None,None,Email Sent
var message="";
var dt=new Date();
var tdv=new Date(dt.getFullYear(),dt.getMonth(),dt.getDate()).valueOf();
for (var i=0;i<vA.length;i++) {
message =
"<p><b>Name: </b>" + vA[i][5] + ' ' + vA[i][4] + ' ' + "</p>" +
"<p><b>Department: </b>" + vA[i][8] + "</p>" +
"<p><b>Location: </b>" + vA[i][1] + "</p>" +
"<p><b>Last working day on: </b>" + vA[i][6] + "</p>" +
"<p><b>Exit date -contractual-: </b>" + vA[i][7] + "</p>" +
"<p><b>Useful links: </b>"+' ' + "</p><br><br>";
var SendTo="person@domain.com";
var Subject="Subject: " + vA[i][4] + ' ' + vA[i][5] + ' | Date: ' + vA[i][7];
var cd=new Date(vA[i][7]);//Im guessing this is the date for the 7 day threshold
var cdv=new Date(cd.getFullYear(),cd.getMonth(),cd.getDate()-7).valueOf();
if(tdv>=cdv && vA[i][11]!='Email Sent') {
MailApp.sendEmail({to: SendTo,subject: Subject,htmlBody: message});
ash.getRange(sr,12).setValue("Email Sent");
}
}
}
这就是我想您的标题行。