Это мои данные:
Теперь я хочу отправить себе электронное письмо, когда будут выполнены 2 критерия:
- Столбец «Дата» D - это вчерашняя дата.
И
- Столбец «Значение» F, где столбец D вчера - больше 0,5.
На основании этого критерия сценарий должен сработать для 20190110, поскольку значение в F равно 0,7. Однако скрипт не запускается, так как выполнение занимает слишком много времени. Может ли это быть связано с циклом, поскольку он проходит через так много строк?
Это то, что я имею до сих пор. Я был бы признателен, как сделать это на самом деле вызвать электронную почту. Спасибо!
function readCell() {
var sheet = SpreadsheetApp.getActive().getSheetByName('test');
var dates = sheet.getRange('D1:D').getValues(); //date column
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('test@gmail.com', 'Alert', result);
}
};
Вот отчет об ошибке Stackdriver