在脚本窗口中手动触发但未通过onOpen触发器

时间:2019-01-18 16:21:21

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

我创建了一个工作用的Google脚本(我不想在这里分享),并且使用一个onOpen()触发器工作得很好

自从我出于测试目的在个人电子表格上处理该脚本以来,我最终将其移至真正的Google表格中,该表格应从一开始就可以运行,而onOpen()函数仍可以通过调用正常运行“运行功能”或什至“调试功能”,则不会触发该触发器,并且我也没有获得任何可能对我有帮助的日志或调试信息。

我多次删除并重新创建了触发器,因为我看到这是该问题的已知解决方法,但是它没有任何改变。然后,当我检查“当前触发器”时,我发现它甚至没有触发过一次,对于导致此问题的原因我一无所知……

尽管无论如何它都不想放弃整个脚本,但我仍为触发函数提供了代码,即使自上次在测试电子表格上成功运行以来它没有变化:

function onOpen()
{
  var aSheet = SpreadsheetApp.getActiveSheet();
    var emailRow = 2;
    var emailColumn = 3;
    for(; !aSheet.getRange(emailRow, emailColumn).isBlank(); emailRow++)
    {
      aSheet.getRange(emailRow, 19).setValue(matchNPandCIO(emailColumn, emailRow));
    }
}

我唯一可以添加的并且可能不相关的是,我现在尝试在其上运行脚本的电子表格今天的所有权已更改,而我现在是它的所有者。我的想法和尝试不多了...

是的,我还确保我为脚本提供了所需的授权(在创建触发器之后完成)。

1 个答案:

答案 0 :(得分:0)

onOpen这样的简单触发器会匿名运行,因此,如果matchNPandCIO调用需要授权才能运行的方法,则会失败。

替代方法是使用可安装的触发器。

相关