Должны быть запущены последние ответы из формы Google Apps Script - - PullRequest
1 голос
/ 08 ноября 2019

Я смотрю на автоматический запуск электронной почты при отправке формы Google. Это работает нормально, однако я хочу, чтобы только последний ответ был вызван. Вместо этого он снова проходит через весь лист. Любая помощь будет высоко ценится

// has been sent successfully.
var EMAIL_SENT = "EMAIL_SENT";

function sendEmails2() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 2;  // First row of data to process
  var numRows = sheet.getLastRow()-1;   // Number of rows to process
  var dataRange = sheet.getRange(startRow, 2, numRows, sheet.getLastColumn());
  // Fetch values for each row in the Range.
  var data = dataRange.getValues();
  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var emailAddress = row[5];  // First column
    var message = 'Hello,'+ "\n"
                   +  "\n" 
                   + 'We have received an inquiry from your customer in Inbound'+ ".\n"
                   + "\n"
                   + 'Lead No is' + " - " 
                   +  row[1] + "\n"
                   +  "\n"
                   + 'Kindly arrange a callback'+ "\n"
                   + "\n"
                   + 'Regards,'+ "\n"
                   + 'Team Inbound'; // Second column
    var emailSent = row[7];     // Third column
    if (emailSent != EMAIL_SENT) {  // Prevents sending duplicates
      var subject = "Inbound Inquiry"+ " - " + row[1];
      MailApp.sendEmail(emailAddress, subject, message);
      sheet.getRange(startRow + i, 8).setValue(EMAIL_SENT);
      // Make sure the cell is updated right away in case the script is interrupted
      SpreadsheetApp.flush();
    }
  }
}`

1 Ответ

0 голосов
/ 08 ноября 2019

Если я правильно понял вашу проблему, код проходит через весь лист, потому что эта строка кода

var dataRange = sheet.getRange(startRow, 2, numRows, sheet.getLastColumn());

имеет диапазон от первой строки до последней. Если вы хотите получить только последний ряд, измените его на:

var dataRange = sheet.getRange(numRows, 2, 1, sheet.getLastColumn());

Не забудьте, что getRange() формат getRange(row, column, numRows, numColumns);

Дополнительная информация здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...