首页 文章

复制模板电子表格脚本时,可在Google电子表格脚本中安装onEdit触发器

提问于
浏览
2

我有一个脚本(A)复制模板电子表格 . 此模板电子表格中包含一个脚本(B) . 模板电子表格和脚本以编程方式成功复制并与其他人共享 . 模板脚本需要使用onEdit()触发器来修改第三个电子表格(模板电子表格副本中的编辑将同步到第三个电子表格) . 简单触发器无权访问第三个电子表格 . 我尝试过使用可安装的触发器,但是没有成功获得可安装的onEdit触发器以在复制的电子表格中工作 .

我想要实现的是在复制的电子表格中有一个onEdit触发器,它不需要单独的授权就可以写入第三个电子表格 .

所有电子表格都由一个用户拥有 .

我可以使用脚本A中的以下代码在脚本B中创建可安装的触发器 .

createSpreadsheetEditTrigger(id_of_shared_spreadsheet)
...
...
function createSpreadsheetEditTrigger(idss) {
var ss = SpreadsheetApp.openById(idss);
ScriptApp.newTrigger('myOnEdit')
      .forSpreadsheet(ss)
      .onEdit()
      .create();
}

'myOnEdit'函数位于脚本B中,其中包含与第三个电子表格同步的代码 . 编辑复制的电子表格时不会触发此操作 .

如果我通过从简单的onOpen()函数调用它在脚本B中创建可安装触发器,则由于权限而失败 .

按照这里的建议:Execution failed: You do not have permission to call getProjectTriggers我可以创建可安装的触发器和一个菜单项来调用它,还有一个msgbox,提示用户点击安装并授权触发器 .

是否可以在复制具有编辑第三个电子表格权限的电子表格时以编程方式安装onEdit触发器,而无需用户手动授权触发器?

提前谢谢了

特雷弗斯托尔

1 回答

  • 0

    我刚刚经历了同样的交易,我非常有信心没有授权就没有“简单”的方法来实现这一目标 .

    虽然您可以将“createSpreadsheetEditTrigger”脚本分配给只安装触发器的按钮并同时授权所有,3次点击和5秒,然后它将按照您的意图工作 .

相关问题