自动报告的日期搜索 - Google 文档

Date Search for Automatic Reporting - Google Docs

好的,在提出这个问题之前,我已经来回浏览过这个网站,但出于某种原因,我无法让我实现的代码自动运行。我只需要 运行 的脚本(我已经设置了一个触发器)来检查 sheet 5(称为报告)的第 3 列中的电子邮件。如果今天的日期与给定的日期匹配,我需要它向我发送一封包含第 1 列数据和第 2 列数据的电子邮件。

有人可以看看代码并给我一点帮助吗?

function sendEmails() {
  var spreadsheet = SpreadsheetApp.openById('Unique ID for spreadsheet');           

  var sheet = spreadsheet.getSheets()[4];

  var startRow = 2;  // First row of data to process
  var numRows = 250;   // Number of rows to process
  // Fetch the range of cells
  var dataRange = sheet.getRange(startRow, 1, numRows, 4)
  // Fetch values for each row in the Range.
  var data = dataRange.getValues();   

  var emailAddress = 'email@email.com';
  var subject = "Report Today";

  for (i in data) {
    var row = data[i];
    if( row[3] == true) {
      var message = row[0]+row[1];
      try {
          MailApp.sendEmail(emailAddress, subject, message);
      } catch(errorDetails) {
        MailApp.sendEmail("Email@email.com", "sendEmail script error", errorDetails.message);
      }

    }
  }
}

通过将时间(小时、分钟、秒)设置为 0,确保日期匹配以便能够比较它们。

function sendEmails() {

     var spreadsheet =     SpreadsheetApp.openById('[Spreadsheet_Id]');           

      var sheet = spreadsheet.getSheets()[4];

      var startRow = 2;  // First row of data to process
      var numRows = 10;   // Number of rows to process
  // Fetch the range of cells
  var dataRange = sheet.getRange(startRow, 1, numRows, 4);

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

  var emailAddress = 'email@email.com';
  var subject = "Report Today";

  var today = new Date();
  today.setHours(0,0,0,0);

  for (i in data) {
    var row = data[i];
    row[3].setHours(0,0,0,0);
    if( row[3] == today ) { 
        Logger.log("Send email with: " + row);
        var message = row[0]+row[1];
        try {
          MailApp.sendEmail(emailAddress, subject, message);
        } catch(errorDetails) {
          MailApp.sendEmail(emailAddress, "sendEmail script error", errorDetails.message);
        }
      }
  }
}