如果使用NOW()函数计算了到期时间,则在Google工作表中发送电子邮件

时间:2019-04-02 15:42:20

标签: google-apps-script google-sheets google-sheets-formula

我不知道这是最愚蠢的事情还是最棘手的事情,但是在尝试了几个脚本并尝试对其进行修改之后,我无法使其正常工作。

我只想在基于NOW()函数的到期时间(以分钟为单位)到达时发送电子邮件通知,而无需用户输入,即使关闭工作表和电子表格,这些操作也会自动完成。

换句话说,当到达到期时间时,单元格值(通过公式)从“确定”转换为“ ALERT”,我希望当计算出的单元格值为“时”自动触发电子邮件警报”

https://docs.google.com/spreadsheets/d/14e9M3fo2p0E4k0raOe6xAuVP5OVfcIYycxHIPimIud0/edit?usp=sharing

我试图强制重新计算公式以通过set.value模拟用户输入,但是没有运气

function checkValue(e){

var sp = PropertiesService.getScriptProperties();
var ss = SpreadsheetApp.getActive();
var sheet = ss.getActiveSheet();
var valueToCheck = sheet.getRange("S2").getValue();
var oldValue = sp.getProperty("S2") || 0;
if (valueToCheck == "ALERTE" && valueToCheck != oldValue) {

var sheetname = ss.getActiveSheet().getName();
var user = sheet.getRange("F7").getValue();
var Toemail = 'email@domain.com';
var subject = '❗ ' + 'RAPPEL' + ' ❗' + ' Nouvelle DA à valider ! ' + sheetname ;
var body = 'Vous avez une nouvelle DA à valider ' + sheetname + ' de la part de ' + user + ' à compléter ici ' + SpreadsheetApp.getActiveSpreadsheet().getUrl() + '#gid=' + SpreadsheetApp.getActiveSpreadsheet().getSheetId();

GmailApp.sendEmail(Toemail, subject, body, {'from':'notification@DOMAIN.com'});

  sp.setProperty("S2", valueToCheck);

}

}

触发器已正确执行(电子表格设置为每分钟刷新一次,时区也正确),但是什么也没有发生,但是如果我手动输入值ALERTE,则会发送电子邮件...

0 个答案:

没有答案