【问题标题】:How can I send an email based on yesterday's date in google sheet如何根据昨天在谷歌表中的日期发送电子邮件
【发布时间】:2020-07-28 11:42:05
【问题描述】:

我正在尝试在 google 表格中编写一个脚本,该脚本会检查我的表格以查看它是否已更新,如果尚未更新则发送电子邮件。基本上,扫描最后一行的昨天的日期,如果它返回该日期,发送电子邮件。

到目前为止,我想出的脚本都没有奏效。是否有一个简单的脚本可以简单地执行以下操作:扫描最后一行,如果 C3 中的日期是昨天,则发送电子邮件?

{EDIT}感谢您的回复。

我现在添加了一个列,该列显示“是”或“否”,具体取决于另一列中的日期是今天还是过去。我改编了以下脚本:

   function Checkcell() {
  // Fetch the cell data
 var range = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Erith").getRange("AD2:AD"); 
  var answer = range.getValue();
if (answer ="Yes"){
     // Fetch the email address
  var emailRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Erith').getRange('AD2:B');
var emailAddress = emailRange.getValues();
// Send Alert Email.
var message = 'This is your Alert email!'; // Second column
var subject = 'Your Google Spreadsheet Alert';
MailApp.sendEmail("email", "MIS Information", "Please complete MIS information using the google doc"); 
}
}

这似乎可行,但我怎样才能让它只读取工作表的最后一行而不是所有行?

【问题讨论】:

  • 请提供您迄今为止所做的努力以及您拥有的脚本以及 xact 问题描述。还提供一个示例表,直观地展示您的日期是什么样的以及它们的格式。
  • 谢谢马里奥斯,帮了大忙!感谢您的努力,并感谢您解释您对脚本所做的工作。

标签: google-apps-script google-sheets


【解决方案1】:

这是您问题的解决方案:

function Checkcell(){

var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Erith")  
//var cell_row = 3
var cell_row = sheet.getLastRow() // this will give you the last row of your sheet with content
var cell_check =  sheet.getRange(cell_row,3).getValue() // assuming the "Yes" is in column C
Logger.log(cell_check)

if (cell_check == "Yes") 
{  
var emailAddress = sheet.getRange(cell_row,2).getValue() // assuming the email is in column B
var message = 'This is the message/body of the email'; // Second column
var subject = 'This is the subject of the email';
MailApp.sendEmail(emailAddress, subject , message); // subject 
}
}

我不得不对您提供的代码进行大量更改。首先,我添加了一行:

var cell_row = sheet.getLastRow()

获取包含数据的最后一列。请小心,因为这可以是任何列。例如,如果 A 列中的最后一个值在单元格 A10 中,而 B 列中的最后一个值是 B5,则此行将为您提供 10,因为 10 是包含内容的最后一行。

我还做了以下假设:

  1. B 列有电子邮件地址,
  2. C 列的“是”或“否”取决于日期,
  3. 电子邮件地址和“是”或“否”属于同一行(例如 B3、C3)

如果不想考虑最后一行,也可以自己指定行。注释掉这一行:

var cell_row = 3

并注释使用 getLastRow() 的那个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-07
    • 1970-01-01
    • 1970-01-01
    • 2017-03-14
    • 2021-06-23
    相关资源
    最近更新 更多