Условие для пропуска данных не работает, как задумано - PullRequest
0 голосов
/ 10 октября 2018

Привет всем, я скопировал это из предыдущего поста и соответствовал моим потребностям.У меня возникают проблемы с тем, чтобы он не отправлял весь список, когда слово «Отправлено» находится в столбце 10. Я перепутался с кодировкой больше, чем хотелось бы, и чувствую, что она становится грязной.

Может кто-нибудь взглянуть на это и посмотреть, чего не хватает?

Он отправит электронное письмо и сделает все, что мне нужно, но пока он просто отправляет все строки данных независимо от того, есть ли в столбце Sent или нет.

function sendEmails2() {

    //setup function
    var ActiveSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    var StartRow = 2;
    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[i];

        //define column to check if sent
        var EmailSent = CurrentRow[10];

        //if row has been sent, then continue to next iteration
        if (EmailSent == "sent") 
         continue;

        //set HTML template for information
        message +=
        "<p><b>Sales Rep: </b>" + CurrentRow[0] + "</p>" +
        "<p><b>Case ID: </b>" + CurrentRow[1] + "</p>" +
        "<p><b>Name: </b>" + CurrentRow[2] + "</p>" +
        "<p><b>Signing Date: </b>" + CurrentRow[3] + "</p>" +
        "<p><b>Draft Date: </b>" + CurrentRow[4] + "</p>" +
        "<p><b>Sign to Draft: </b>" + CurrentRow[5] + "</p>" +
        "<p><b>Enrolled Debt: </b>" + CurrentRow[6] + "</p><br><br>";

        //set the row to look at
        var setRow = parseInt(i) + StartRow;

        //mark row as "sent"
        ActiveSheet.getRange(setRow, 10).setValue("sent");
   }

   //define who to send email to 
   var SendTo = "my email address" + "," + "";

   //set subject line
   var Subject = "NEW DEAL CLOSED";

   //send the actual email  
   MailApp.sendEmail({
      to: SendTo,
      cc: "",
      subject: Subject,
      htmlBody: message,
  });
}

1 Ответ

0 голосов
/ 12 октября 2018

ошибка существует в var EmailSent = CurrentRow [10], где столбец фактически рассматривается как 11. При извлечении всего диапазона данных из листа индекс столбца начинается с 0, поэтому фактический индекс, который должен быть взят, должен быть 9 для10-я колонна

 //define column to check if sent
    var EmailSent = CurrentRow[9];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...