繁体   English   中英

在脚本中使用Google表格公式

[英]Use Google Sheet Formula in Script

每次将新条目添加到我的Google工作表之后,我需要让脚本验证单元格的组合,然后确保验证的输出已更改,然后再发送电子邮件。 我知道如何使用电子表格中的公式进行验证并提供正确的输出,并且我知道如何让脚本检查该字段并运行。 当有人从用户界面编辑工作表时,此方法有效。 问题在于电子表格没有通过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);
    }
  }
}

您发现的内容无法正常使用。 当前,当外部代码使用电子表格或驱动器api更改内容时,不会触发这些触发器。

如果您需要它实时工作,则不可能。 否则,如果您可以延迟1分钟生存,则可以使用1分钟循环触发器来检查电子表格上的最后修改日期是否已更改(通过与以前存储在脚本属性中的日期进行比较)。

如果更改,请再次处理整个工作表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM