问题描述
这会导致发送包含截止日期到期的详细信息的电子邮件。另外,我想将状态从“Pogress”更改为“转发”以了解详细信息已转发。
function myEmailBot() {
var ss = SpreadsheetApp.getActiveSheet();
//var rangeList = ss.getRangeList(['C2:D3','L2:M2']);
//rangeList.activate();
var nameData = ss.getRange("C2:C").getValues();
var addressData = ss.getRange("D2:D").getValues();
var mobData = ss.getRange("E2:E").getValues();
var vaccineData = ss.getRange("K2:K").getValues();
var fdoseData = ss.getRange("L2:L").getValues();
var dueData = ss.getRange("M2:M").getValues();
var rDaysData = ss.getRange("O2:O").getValues();
var status = ss.getRange("R2:R").getValues();
for ( i = 0; i <= 492; i++){
if(dueData [i]== "OD" & status[i] == "Forwarded") {
//Logger.log("Horray");
//return;
} else if (dueData [i] == "OD" & status [i] == "Progress") {
var name = nameData[i];
var address = addressData[i];
var mob = mobData[i];
var vaccine = vaccineData[i];
var fDose = fdoseData[i];
var rDays = rDaysData[i];
let msg = "Name: " + name + "\r\n" + "Address: " + address + "\r\n" + "Mob: " + mob + "\r\n" + "Vaccine: " + vaccine + "\r\n" + "First Dose Date: " + fDose + "\r\n" + "Remaning Days: " + rDays ;
//GmailApp.sendEmail("Sarathsaseendran@outlook.in","Vaccination Due",msg)
var test = ss.getRange(2 + i,17 ).setValue("Forwarded");
Logger.log(test);
}
else {
//Logger.log("Due Date Not Reached");
}
}
}
解决方法
我可以在这里建议的唯一问题:如果您想更改列 R
(我不知道这只是我的猜测),您需要更改此行:
var test = ss.getRange(2 + i,17 ).setValue("Forwarded");
这样:
var test = ss.getRange(2 + i,18 ).setValue("Forwarded");
因为在这种情况下 R
是第 18 列。
function myEmailBot() {
const ss = SpreadsheetApp.getActive();
const sh = SpreadsheetApp.getActiveSheet();
const vs = sh.getRange(2,1,sh.getLastRow() - 1,sh.getLastColumn()).getValues();
let status = vs.map(r => [r[17]]);
vs.forEach((r,i) => {
if (r[10] == "OD" && status[i] == "Progress") {
status[i] = "Forwarded";
let msg = "Name: " + r[2] + "\r\n" + "Address: " + r[3] + "\r\n" + "Mob: " + r[4] + "\r\n" + "Vaccine: " + r[10] + "\r\n" + "First Dose Date: " + r[1] + "\r\n" + "Remaning Days: " + r[14];
GmailApp.sendEmail("sarathsaseendran@outlook.in","Vaccination Due",msg)
}
});
sh.getRange(2,18,status.length,1).setValues(status);
}