首页 > 解决方案 > 如果单元格日期等于今天,如何发送电子邮件

问题描述

我正在尝试创建一个与电子表格一起使用的 Google Apps 脚本,以便在满足某些条件时发送电子邮件。如果 C 列等于今天且 A 列等于 false,则专门发送一封电子邮件。

电子表格链接: https ://docs.google.com/spreadsheets/d/1kULWOMtZaay6PcgF5XTwVoJnKPo7JSA_AK50J8RNYzk/edit?usp=sharing

我能够将其设置为电子表格处理大部分工作。D 列检查日期,A 列被检查,然后当 D 列读取为 TRUE 时脚本将发送。我想知道是否可以让 Google Apps 脚本检查今天的日期,而不是电子表格。

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

  // Fetch the range of cells
  var dataRange = sheet.getRange(startRow, 1, numRows, numOfColumns);
  // Fetch values for each row in the Range.
  var data = dataRange.getValues(); 

  var sendTrigger = "";

  var i = 0;
  for (i=0;i<data.length;i++) {
    var row = data[i];
    var emailAddress = row[4];  // fifth column
    var message = row[5];       // sixth column

    sendTrigger = row[3];

    if (sendTrigger == 1) {
      var subject = ("This is a test of the send email function");
      MailApp.sendEmail(emailAddress, subject, message);
    };
  };
};

我希望脚本检查 A 列和 C 列,如果 A 列等于 FALSE 并且 C 列等于 TODAY,则发送一封电子邮件

标签: google-apps-scriptgoogle-sheets-api

解决方案


尝试这个:

function sendEmails() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 2;  // First row of data to process
  var numRows = 50;   // Number of rows to process
  var numOfColumns = sheet.getLastColumn();
  var dataRange = sheet.getRange(startRow, 1, numRows, numOfColumns);
  var data = dataRange.getValues(); 
  var sendTrigger = "";
  var dt=new Date();
  var dv=new Date(dt.getFullYear(),dt.getMonth(),dt.getDate()).valueOf();
  for (var i=0;i<data.length;i++) {
    var row = data[i];
    var emailAddress = row[4];  // fifth column
    var message = row[5];       // sixth column
    var d=new Date(row[2]);
    if (!row[0] && new Date(d.getFullYear(),d.getMonth(),d.getDate()).valueOf()==dv) {
      var subject = ("This is a test of the send email function");
      MailApp.sendEmail(emailAddress, subject, message);
    }
  }
}

推荐阅读