Time driven triggered script producing error/Disabled last run error

回眸只為那壹抹淺笑 提交于 2021-01-29 06:03:44

问题


I am having an issue with a combination of scripts that I operate. I have two scripts. The first is time triggered, which when activated sets off the second script. I will copy these scripts below:

function timeTriggersHWM() {
  var myCell=SpreadsheetApp.getActive().getSheetByName("Overview").getRange("AA1");
  var cellValue=myCell.getValue();    
  var time=cellValue;
  ScriptApp.newTrigger('highWaterMark').timeBased().after(time).create(); 
}

This script should trigger the 'highWaterMark' script when a time value is entered in Overview!AA1.

When I run the timeTriggersHWM manually, it works exactly as intended. However, the issue I am having is when I allow the timeTriggersHWM script to be Triggered. The timeTriggersHWM script triggers, however instead of successfully running the highWaterMark script as it does when it is manually triggered, it instead shows highWaterMark as 'Disabled' in red under 'Last run' on https://script.google.com/home/projects/.

This has worked in the past. Only recently has there been difficulties with this. Could someone advise what could be causing this? Thanks.

I have tried deleting the trigger, then creating again. Made no difference.

In case someone needs to see the content of the highWaterMark script, this can be seen below:

function highWaterMark() {
  var sheet=SpreadsheetApp.getActive().getSheetByName('HWM');
  var nRows=sheet.getDataRange().getHeight();
  var values=sheet.getRange(3, 3, nRows, 2).getValues();
  for (var i=0; i<nRows; i++) {
    if (values[i][0] == "");
    if (values[i][0] < values[i][1]) values[i][0] = values[i][1];
  }
  sheet.getRange(3, 3, nRows, 2).setValues(values);
}

I don't believe the issue is being cause by content of this script, but have included it here just in case.


回答1:


Try this:

function timeTriggersHWM() {
  var ss=SpreadsheetApp.openById('id')
  ScriptApp.newTrigger('highWaterMark').timeBased().after(ss.getSheetByName("Overview").getRange("AA1").getValue()).create(); 
}

function highWaterMark() {
  var ss=SpreadsheetApp.openById('id')
  var sheet=ss.getSheetByName('HWM');
  var range=sheet.getRange(3,3,sheet.getLastRow()-2,2);
  var values=range.getValues();
  for (var i=0; i<values.length;i++) {
    if (values[i][0]<values[i][1])values[i][0]=values[i][1];
  }
  sheet.getRange(3,3,values.length,values[0].length).setValues(values);
}


来源:https://stackoverflow.com/questions/60954579/time-driven-triggered-script-producing-error-disabled-last-run-error

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!