Google Apps Script - отправка электронной почты на основе даты в ячейке

Я огляделся по сторонам и нашел кусочки, но не могу собрать головоломку. Я пытаюсь создать сценарий, который будет работать на триггере, настроенном для ежедневного запуска. Триггер будет настроен в разделе «Ресурсы» в редакторе.

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

Сценарий, кажется, запускается, но ничего не происходит, что я считаю, потому что & quot; if (currentTime == dataRange) & quot; DataRange не соответствует правильно ??

Вот код:

function sendEmails() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2;  // First row of data to process
var numRows = 50;   // Number of rows to process
// Fetch the range of cells
var dataRange = sheet.getRange(startRow, 1, numRows, 2)
// Fetch values for each row in the Range.
var data = dataRange.getValues();   
//Get todays date     
var currentTime = new Date();
var month = currentTime.getMonth() + 1;
var day = currentTime.getDate();
var year = currentTime.getFullYear();      
//Test column  for date due & match to current date
    if ( currentTime == dataRange) {
  for (i in data) {
var row = data[i];
var emailAddress = row[0];  // First column
var message = row[1];       // Second column
var subject = "Task Item Due";
MailApp.sendEmail(emailAddress, subject, message);

}
}
}

Я обновляю предложение, предоставленное Сриком, и предоставляю его в приведенном ниже коде. Я пытался опубликовать это пару раз, так что я не уверен, почему он не прошел прошлую экспертную оценку?

 function sendEmail() {

var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2;  // First row of data to process
var numRows = 50;   // Number of rows to process

var dataRange = sheet.getRange(startRow, 1, numRows, 50);

// Fetch values for each row in the Range.
var data = dataRange.getValues();
//Browser.msgBox(data)

for (i in data) {
var row = data[i];
var date = new Date();
var sheetDate = new Date(row[1]);

if (date.getDate() == sheetDate.getDate() && date.getMonth() == sheetDate.getMonth() && date.getFullYear() == sheetDate.getFullYear());
{
  var emailAddress = row[0];  // First column
  var message = row[2];       // Second column
  var subject = "Sending emails from a Spreadsheet";
  MailApp.sendEmail(emailAddress, subject, message);
 // Browser.msgBox(emailAddress)

}

}

}

Кажется, код выполняется, но я получаю следующую ошибку в редакторе сценариев. & quot; Не удалось отправить электронное письмо: нет получателя (строка 23) & quot ;. Но он по-прежнему отправляет электронные письма. Он должен сравнивать даты и отправлять электронную почту, только если дата совпадает. Это отправка электронной почты для каждой строки. Я предоставил доступ к электронной таблице, чтобы увидеть код и настройку электронной таблицы.Общая таблица

ОБНОВЛЕННЫЙ КОД W / SERGE HELP на регистраторе и Utilities.formatDate .. Спасибо !!

function sendEmail() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2;  // First row of data to process
var numRows = sheet.getLastRow()-1;   // Number of rows to process
// Fetch the range of cells A2:B3
var dataRange = sheet.getRange(startRow, 1, numRows, sheet.getLastColumn());
// Fetch values for each row in the Range.
var data = dataRange.getValues();
//Logger.log(data)

for (i in data) {
  var row = data[i];
  var date = new Date();
  date.setHours(0);
  date.setMinutes(0);
  date.setSeconds(0);
  //Logger.log(date);
  var sheetDate = new Date(row[2]);
 //Logger.log(sheetDate);
 var Sdate = Utilities.formatDate(date,'GMT+0200','yyyy:MM:dd')
 var SsheetDate = Utilities.formatDate(sheetDate,'GMT+0200', 'yyyy:MM:dd')
     Logger.log(Sdate+' =? '+SsheetDate)
        if (Sdate == SsheetDate){
          var emailAddress = row[0];  // First column
          var message = row[1];       // Second column
          var subject = "Your assigned task is due today." +message;
          MailApp.sendEmail(emailAddress, subject, message);
          //Logger.log('SENT :'+emailAddress+'  '+subject+'  '+message)
            }    
   }
  }

Ответы на вопрос(3)

Ваш ответ на вопрос