问题:当我运行脚本时,谷歌告诉我,
您无权调用 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 脚本函数的自定义菜单,而不是编写自定义函数。如果需要,从菜单触发的功能会要求用户授权,因此可以使用所有 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);
};