将编辑Google脚本更改为基于时间的触发器

时间:2018-01-09 10:16:33

标签: google-apps-script google-sheets

我在Google表格中设置了脚本,当触发onEdit更改时,会在2列中添加新日期。不幸的是,应该触发onEdit功能的数据由API提供,并且根据谷歌不算作编辑。我需要将功能切换到基于时间的触发器并每分钟运行一次以进行检查。原始的onEdit脚本如下:

function declineDate() {
  var cell = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1").getActiveRange();
  var col = cell.getColumn();
  var row = cell.getRow();
  var value = cell.getValue();
  var col2 = SpreadsheetApp.getActiveSheet().getRange(row,col+1);
  var col3 = SpreadsheetApp.getActiveSheet().getRange(row,col+2);
  var range = SpreadsheetApp.getActiveSheet().getRange(row,col+1,1,2);
  if (col == 11 && (value=="Completed"))
    return col2.setValue(new Date());
  else if ((col == 11 && (value=="Declined" || value=="Accepted" || value=="Withdrawn")) && (col2.isBlank()))
    return range.setValue(new Date());
  else if ((col == 11 && (value=="Declined" || value=="Accepted" || value=="Withdrawn")) && (col2 != ""))
    return col3.setValue(new Date());
}

电子表格的可查看链接位于:

https://docs.google.com/spreadsheets/d/1nHBIlRDu3MqDhjDd8eTr3mu57_LO4OWQjh7uwDAIMNU/edit?usp=sharing

我需要切换功能,使其每分钟运行一次(或每隔几分钟)并循环遍历行,根据状态列(第11列)将相关日期添加到第12列和第13列。理想情况下,如果第2列的数据/大于0且第13列为空,则循环仅在行上运行 - 这样我们就不会再次运行所有已回溯的行。

我知道当前功能需要进行一些非常重要的更改(因为它不起作用!)并且非常感谢任何帮助。

如果需要,很高兴发送更多信息。

非常感谢

亚历

0 个答案:

没有答案