【问题标题】:onChange not firingonChange 没有触发
【发布时间】:2017-11-10 02:36:41
【问题描述】:

我显然做错了,因为世界上似乎没有人以前遇到过这个问题。

我想在工作表末尾插入一行时运行 Google Apps 脚本。我知道我需要为此使用 onChange,所以这就是我所做的:

设置触发更改时应运行的脚本:

function copyDownFormula(e) 
{
Logger.log('something');
}

然后我在我的触发器中设置 onChange 触发器:

my sheet triggers

然后我安装了这段代码,以便在使用 onOpen 触发器打开工作表时安装 onChange 触发器:

  ScriptApp.newTrigger('onChange').forSpreadsheet(ss).onChange().create(); 

但由于某种原因,当我向工作表添加行时,什么也没有发生。我访问日志,它们是空的。我错过了什么吗?

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    onChange 再次触发

    也许是这样的:

    ScriptApp.newTrigger('onChange').forSpreadsheet(ss).onChange().create(); 
    

    应该是这样的:

    ScriptApp.newTrigger('copyDownFormula').forSpreadsheet(ss).onChange().create(); 
    

    试试这个:

    function copyDownFormula(e)
    {
    
      Logger.log('ChangeType:%s Row:%s',e.changeType,SpreadsheetApp.getActiveSheet().getActiveRange().getRow()); 
    
    }
    

    在编辑菜单的当前项目的触发器中设置触发器。它有效。

    或者,如果您愿意:

    你用这个:

    function triggerSetup()
    {
        ScriptApp.newTrigger('copyDownFormula').forSpreadsheet('SpreadsheetId').onChange().create();
    }
    

    【讨论】:

    • 感谢库珀。现在有一个不同的问题:[17-11-09 22:51:08:711 PST] 执行失败:您没有权限调用 newTrigger(第 7 行,文件“runOnOpen”)[0.101 秒总运行时间] 似乎我无法从 onOpen 运行触发器安装程序。我想避免对触发器进行任何手动批准,因为还有其他用户在使用该工作表。有什么想法吗?
    • 这很奇怪,因为我在 onOpen 中运行了 nScriptApp.newTrigger
    猜你喜欢
    • 1970-01-01
    • 2018-12-05
    • 1970-01-01
    • 2012-06-08
    • 1970-01-01
    • 2019-02-19
    • 1970-01-01
    • 2018-09-26
    • 2021-10-16
    相关资源
    最近更新 更多