我有一个复制模板电子表格的脚本(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 中创建可安装的触发器,则会因权限而失败。
遵循此处的建议:执行失败:您无权调用 getProjectTriggers我可以创建可安装的触发器和一个调用它的菜单项,以及一个提示用户单击安装并授权触发器的消息框。
在复制有权编辑第三个电子表格的电子表格时,是否可以以编程方式安装 onEdit 触发器,而无需用户手动授权触发器?
提前谢谢了
特雷弗·斯托尔
我刚刚经历了同样的交易,我非常有信心没有一种“简单”的方法可以在没有授权的情况下实现这一点。
尽管您可以将“createSpreadsheetEditTrigger”脚本分配给一个按钮,该按钮仅安装触发器并同时授权所有触发器,只需单击 3 次,只需 5 秒,那么它将按照您的预期工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)