小编use*_*111的帖子

GAS"您无权调用openById"

问题:当我运行脚本时,Google告诉我," 您无权调用openById. "

我从另一个Google电子表格中复制了一个脚本,并更改​​了target_ssKey变量的单元格引用,并在源电子表格和目标电子表格中创建了适当大小的命名范围.

GAS文档没有说明它可能无法工作的原因:

https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app#openById%28String%29

另一个GAS文档说它应该对我有用,因为我从自定义菜单中调用它:

https://developers.google.com/apps-script/guides/sheets/functions#using_apps_script_services

上面的第二个链接说:

如果您的自定义函数抛出错误消息您没有权限调用X服务.,该服务需要用户授权,因此不能用于自定义功能.

要使用上面列出的服务以外的服务,请创建一个运行Apps脚本功能的自定义菜单,而不是编写自定义功能.从菜单触发的功能将在必要时要求用户进行授权,因此可以使用所有Apps脚本服务.

我尝试将该函数放入"自定义函数"项目,然后放入"附加"项目,但仍然得到相同的错误消息.

关于我做错了什么以及如何使这项工作的任何想法?

这是我的确切代码:

function exportData_SStoSS() {
    //  Get the source data.
    var source_ss = SpreadsheetApp.getActiveSpreadsheet();
    var data = source_ss.getRangeByName("exportData").getValues();

    //  Identify the target.
    var controls_sh = source_ss.getSheetByName("Controls");
    var target_ssKey = controls_sh.getRange('C2').getValue();
    var target_ss = SpreadsheetApp.openById(target_ssKey);

    //  Paste the data to the target.
    target_ss.getRangeByName("importData").setValues(data);
};
Run Code Online (Sandbox Code Playgroud)

google-sheets google-apps-script custom-function

10
推荐指数
4
解决办法
1万
查看次数