-1

这会在发送包含到期日期到期的详细信息的电子邮件中产生。另外,我想将状态从“Pogress”更改为“Forwarded”以了解详细信息已被转发。

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");
    }
  }
}

4

2 回答 2

1

我可以在这里建议的唯一问题:如果您想更改列R(我不知道这只是我的猜测),您需要更改此行:

var test = ss.getRange(2 + i, 17 ).setValue("Forwarded");

这边走:

var test = ss.getRange(2 + i, 18 ).setValue("Forwarded");

因为R在这种情况下是第 18 列。

于 2021-06-26T10:08:20.567 回答
1
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);
}
于 2021-06-26T12:31:14.757 回答