在AppScript中添加库时不会触发OnEdit

时间:2019-06-10 15:06:39

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

我在工作表脚本上有一个带有OnEdit()函数的Google工作表。另外,此脚本会导入一个库,该库是另一个具有某些功能的AppScript。当我使用工作表时,它可以完美工作,无论何时编辑它,OnEdit都会触发而不会出现任何问题。但是,由于我在其他人编辑工作表时与他人共享了此工作表,因此不会触发OnEdit。在导入库之前,它已为所有用户使用。之后,OnEdit才对我有用。 我知道问题是因为该库仅与我共享,但事实是该库中的功能对所有用户都很好。唯一对所有人都不起作用的是OnEdit。 我想找到一种解决方案,因为我无法与所有有权访问工作表的用户共享该库。 onEdit只是写入一个单元格值,这就是它的所有代码。

我在共享工作表中尝试了OnEdit,并且对所有人都非常有效。当我添加一个库时,onEdit仅对我有用。

function onEdit(e) {
  var logSheet = SpreadsheetApp.getActive().getSheetByName('test');
  logSheet.appendRow(['You edit']);
}

2 个答案:

答案 0 :(得分:0)

如果其他用户无权访问该库,则他们使用其功能可能会出现问题。我相信您的问题与在项目中通过集成工具为其创建触发器有关。根据有关共享的文档:

  

当您在项目上进行协作时,您创建的任何可安装触发器不会与有权访问您的项目的人员共享。如果需要为所有协作者设置一致的触发器设置,则可以使用脚本服务在运行时以编程方式创建触发器。有关更多信息,请参见以编程方式管理触发器。

这可能是触发器,仅在创建它的用户处发生(因为它不适用于您的测试用户)。

链接到文档:https://developers.google.com/apps-script/guides/collaborating

答案 1 :(得分:-1)

我遇到了同样的问题。如果您创建触发“onEdit”功能的可安装触发器,它将解决您的问题。您甚至不需要与任何人共享库。