TLDR:我需要使用scsript从单独的Google工作表中导入一系列单元格,但被告知我无权访问其他工作表(我确定ID是正确的)。我不知道为什么我无法访问其他工作表。如果有人知道执行此操作的简单脚本,那就太好了。请帮忙!
大家好,我一直在使用importrange将数据从其他Google工作表中提取到我的主工作表中,但是却遇到了其他人以前抱怨的无休止的加载时间。我以前从未使用过脚本,因此真的不知道自己在做什么。
在目标Google工作表中,我创建了以下脚本,但收到此错误:“找不到具有给定ID的项目,或者您没有访问权限。”
function UpdateRange(ID, source_sheet, source_range, destination_sheet_name) {
var values = SpreadsheetApp.open(DriveApp.getFileById(ID))
.getSheetByName(source_sheet)
.getRange(source_range)
.getValues();
return SpreadsheetApp.getActive()
.getSheetByName(destination_sheet_name)
.getRange(1, 22, values.length, values[0].length)
.setValues(values);
}
UpdateRange("1Rt***_tRbs", "Revenue By Category", "E2:M9", "Sheet33");
***用于匿名化原始工作表ID
即使我是第一个创建表格的人,我也不知道我如何无法访问它。如何获得工作表的访问权限或导入此范围的其他操作。非常感谢您的帮助!
答案 0 :(得分:2)
快速浏览一下,您可以尝试简化:
SpreadsheetApp.open(DriveApp.getFileById(ID))...
只是:
SpreadsheetApp.openById(ID)...
这两种方法都可以正常工作,但是您避免使用DriveApp API,该API可能需要的权限不同于电子表格。