【发布时间】:2015-08-15 17:29:56
【问题描述】:
问题:当我运行脚本时,Google 告诉我,
您无权调用 openById
我从另一个 Google 电子表格中复制了一个脚本,更改了 target_ssKey 变量的单元格引用,并在源电子表格和目标电子表格中创建了大小合适的命名范围。
Google Apps 脚本文档没有说明它可能无法正常工作的原因:
https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app#openById%28String%29
另一个 Google Apps 脚本文档说它应该对我有用,因为我从自定义菜单调用它:
https://developers.google.com/apps-script/guides/sheets/functions#using_apps_script_services
上面的第二个链接说:
如果你的自定义函数抛出错误信息你没有 调用 X 服务的权限。,该服务需要用户授权 因此不能在自定义函数中使用。
要使用上述以外的服务,请创建自定义菜单 运行 Apps Script 函数而不是编写自定义的 功能。从菜单触发的功能将询问用户 必要时进行授权,因此可以使用所有应用程序 脚本服务。
我尝试将函数放入“自定义函数”项目,然后放入“附加”项目,但仍然收到相同的错误消息。
关于我做错了什么以及如何使其发挥作用的任何想法?
这是我的确切代码:
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);
};
【问题讨论】:
-
问题没有包含足够的细节来重现问题,特别是当从自定义菜单和插件调用函数时(自定义函数无法执行需要权限的方法)跨度>
-
可能重复No permission to call msgBox in Google Apps Scripting(虽然错误消息与原因不完全相同,并且该问题较旧)
标签: google-apps-script google-sheets google-apps-script-addon google-sheets-custom-function