После каждого добавления новой записи в мой лист google мне нужно, чтобы скрипт проверял комбинацию ячеек, затем убедитесь, что результат проверки был изменен перед отправкой электронной почты. Я знаю, как сделать валидацию и предоставить правильный результат, используя формулу в электронной таблице, и я знаю, как проверить сценарий этого поля и запустить его. Это работает, когда кто-то редактирует лист из пользовательского интерфейса. Проблема заключается в том, что электронная таблица не обновляется через пользовательский интерфейс (это делается с помощью рецепта IFTTT), поэтому я не думаю, что поле проверки пересчитывается до запуска скрипта, что означает, что не отправляется электронное письмо.Используйте формулу Google Sheet в скрипте
Следующая формула и сценарий отлично работают, когда она обновляется через пользовательский интерфейс. Мой вопрос: есть ли способ вычислить переменную «значение» из приведенного ниже сценария с помощью формулы из таблицы?
Формула, которая находится в ячейке "D2" Листа "состояние":
= IF ((СЧЕТЕСЛИ (INDEX (данные! A1: D5032, (SUMPRODUCT (MAX ((данные А: А = "meloc ") * (ROW (данные! A: A))))), 4)," введено ") + COUNTIF (ИНДЕКС (данные! A1: D5032, (SUMPRODUCT (MAX ((данные! A: A = youloc ") * (ROW (данные A: A))))), 4)," вошел «))> 0,9999999999999,1111111111111)
скрипт, который отлично работает с триггером onEdit когда лист редактируется через пользовательский интерфейс:
function myNotification() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var value = ss.getSheetByName("state").getRange("D2").getValue();
if(value > 0) {
var last = ScriptProperties.getProperty("last");
value = value.toString();
if(value != last) {
MailApp.sendEmail('[email protected]', 'Status #'+value+'\n\n',
'1="not here", 9="here": '+value+'\n\n', {
cc: '[email protected]'
});
ScriptProperties.setProperty("last", value);
}
}
}
Спасибо за ответ. Это так же просто, как заставить скрипт запускать каждую минуту, или есть дополнительный код, который мне нужно добавить? Часть того, что я не знаю, заключается в том, что формула пересчитывается после каждого изменения api. –
дайте ему попробовать. не уверен, что формула будет пересчитываться именно тогда. –
Настройка скрипта для запуска каждой минуты отлично работала. Никаких других изменений не требуется. Спасибо! –