时间驱动的触发脚本产生错误/禁用上次运行错误 [英] Time driven triggered script producing error/Disabled last run error

查看:37
本文介绍了时间驱动的触发脚本产生错误/禁用上次运行错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我操作的脚本组合有问题.我有两个脚本.第一个是时间触发的,激活后会触发第二个脚本.我将在下面复制这些脚本:

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(); 
}

在Overview!AA1中输入时间值时,此脚本应触发"highWaterMark"脚本.

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

当我手动运行timeTriggersHWM时,它完全可以正常运行.但是,我遇到的问题是当我允许触发timeTriggersHWM脚本时.timeTriggersHWM脚本会触发,但是并没有像手动触发时那样成功运行highWaterMark脚本,而是在

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.

如果有人需要查看highWaterMark脚本的内容,可以在下面看到:

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.

推荐答案

尝试一下:

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);
}

这篇关于时间驱动的触发脚本产生错误/禁用上次运行错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆