【发布时间】:2015-05-28 02:50:45
【问题描述】:
每次将新条目添加到我的 Google 工作表后,我都需要让脚本验证单元格组合,然后确保验证的输出在发送电子邮件之前已更改。我知道如何使用电子表格中的公式进行验证并提供正确的输出,并且我知道如何让脚本检查该字段并运行。当有人从 UI 编辑工作表时,此方法有效。问题是电子表格没有通过 UI 更新(它是通过 IFTTT 配方完成的),所以我不认为在脚本运行之前验证字段正在重新计算,这意味着没有发送电子邮件。
以下公式和脚本在通过 UI 更新时可以完美运行。我的问题是 - 有没有办法使用电子表格中的公式从下面的脚本中计算“值”变量?
表格“状态”的单元格“D2”中的公式:
=IF((COUNTIF(INDEX(data!A1:D5032,(SUMPRODUCT(MAX((data!A:A="meloc")*(ROW(data!A:A))))),4) ,"输入")+COUNTIF(INDEX(data!A1:D5032,(SUMPRODUCT(MAX((data!A:A="youloc")*(ROW(data!A:A)) ))),4),"输入"))>0,9999999999999,1111111111111)
通过 UI 编辑工作表时与 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('trigger@recipe.ifttt.com', 'Status #'+value+'\n\n',
'1="not here", 9="here": '+value+'\n\n', {
cc: 'myemail@gmail.com'
});
ScriptProperties.setProperty("last", value);
}
}
}
【问题讨论】:
标签: google-apps-script google-sheets