问题
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