【发布时间】:2020-12-10 23:31:57
【问题描述】:
我对 Google 脚本世界非常陌生,并且正在尝试编写一个脚本,以便当有人编辑电子表格中的两列之一时,它会导致根据其他电子表格的值复制和重命名不同的电子表格被编辑的行中的列。我到目前为止的脚本如下,所有日志都正常工作,但我收到与最终复制功能相关的错误:“异常:您无权调用 DriveApp.getFolderById。”
现在,我在正在编辑的电子表格上有一个可安装的触发器。如何让这些权限正常工作?非常感谢任何建议!
function CreateNewSheet(e) {//"e" receives the event object
var col = e.range.getColumn();//Get column number of edited cell
Logger.log(col)
var row = e.range.getRow(); //Get row number number of edited cell
Logger.log(row)
if (col != 12 && col != 14) {return;}// Halt the code if the column is not one of 2 of interest
Logger.log("in the function")
var id = "1qg5ZZOifJ1l0V4N8Gxa3qhOBRiMwpyFawdUDny7IB-o"; //ID of other spreadsheet to be copied
var initial = e.value; //value from current spreadsheet needed for rename
Logger.log(initial)
var num = SpreadsheetApp.getActiveSheet().getRange(row, 1).getValue(); //value from current spreadsheet needed for rename
var name = num + "_" + initial
Logger.log(name)
var destFolder = DriveApp.getFolderById("1DKpPbht1gGeKstXKMz6VtCz4TGj-4RJm")
DriveApp.getFileById(id).makeCopy("name", destFolder);
};
【问题讨论】:
-
你需要一个可安装的触发器
-
SpreadsheetApp.openById(id)如果触发器很简单,则无法运行。使用可安装的触发器。您可以使用 google/stackoverflow 或查看文档 here 如何创建可安装的触发器。 -
谢谢你们——我已经切换到一个可安装的触发器,现在我的最后两行出现了一个特定的权限错误(见编辑的代码)
-
@MS 删除当前触发器并创建一个新触发器,以便您可以访问 DriveApp 方法。如果有效,您可以确认下面的答案。
标签: google-apps-script google-sheets