【问题标题】:How to activate a script if a cell has a certain value如果单元格具有特定值,如何激活脚本
【发布时间】:2016-12-23 01:25:16
【问题描述】:

我在谷歌表格脚本中有以下脚本,它工作正常。

function morningemail() {
    var doc = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = doc.getSheetByName("clock script");
    var startRow = 9;  // First row of data to process
    var numRows = 1;   // Number of rows to process

    var dataRange = sheet.getRange(startRow, 1, numRows, 4)
    var data = dataRange.getValues();
    for (i in data) {
        var row = data[i]
        var emailAddress = row[0];  // First column
        var message = row[2] + row[3]; // Second & third column
        var subject = row[1];    // First column
        MailApp.sendEmail(emailAddress, subject, message);
    }
}

我会将项目触发器设置为每 5 分钟激活一次,但只希望脚本在单元格“A20”(在同一个电子表格上)为“>10”时发送电子邮件。

我已经尝试了几种方法,但无法让它发挥作用。任何建议都会很棒。

【问题讨论】:

  • 建议您展示您尝试过的几种方法中的任何一种

标签: javascript google-apps-script google-sheets


【解决方案1】:

简答

在以下几行之间添加if( data[19][0]>10) return;

var data = dataRange.getValues();
for (i in data) {

说明

为了尽量减少对 API 的调用次数,并考虑到您的脚本已经获取了数据范围值,请使用 data[19][0] 获取 A20 的值,然后使用 if 测试是否需要满足条件,在这种情况下使用return 来完成脚本的执行。

参考文献

【讨论】:

  • 嗨鲁本,谢谢。它仍然无法正常工作。我想我通过将所有数据放在电子表格的一行中来简化事情。我的代码仍然无法正常工作
  • 很抱歉行/列已切换。我刚刚更正了它们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多