Trigger email alert based on last row's condition NOT WORKING

一世执手 提交于 2019-12-01 12:12:53

Here's how you can check the last row:

function readCell() {

    var sheet = SpreadsheetApp.getActive().getSheetByName('test');
    var lastRow = sheet.getLastRow();
    var value = sheet.getRange('F' + lastRow).getValue();
    var date = sheet.getRange('D' + lastRow).getValue();

    if (value >= 0.5) {
      var result = 'Result found on: ' + date;
      MailApp.sendEmail('blabla@gmail.com', 'Alert', result);
    }
};

After seeing your data, I think the code below would suit you better.

function readCell() {

    var sheet = SpreadsheetApp.getActive().getSheetByName('test');
    var dates = sheet.getRange('D1:D').getValues();

    var date = null;
    var dateRow = 0;
    var dateCount = dates.length;
    var yesterday = new Date();
    yesterday.setDate(yesterday.getDate() - 1);
    var yesterdayString = yesterday.toDateString();

    for (dateRow; dateRow < dateCount; ++dateCount) {

        date = dates[dateRow];

        if (date instanceof Date) {
            date = date.toDateString();

            if (date === yesterdayString) {
                ++dateRow;
                // To account for zero-based array
                break;
            }
        }
    }

    var value = sheet.getRange('F' + dateRow).getValue();

    if (value >= 0.5) {
      var result = 'Result found on: ' + date;
      MailApp.sendEmail('blabla@gmail.com', 'Alert', result);
    }
};
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!