用于导入范围的 Google 表格脚本:错误“您无权访问它。”

问题描述 投票:0回答:2

TLDR:我需要使用 scsript 从单独的 google 工作表导入一系列单元格,但我被告知我无权访问其他工作表(我确信 ID 是正确的)。我不知道为什么我无法访问另一张纸。如果有人知道一个简单的脚本来做到这一点那就太好了。请帮忙!

大家好,我一直在使用 importrange 将其他谷歌工作表中的数据提取到我的主工作表中,但遇到了其他人之前抱怨的无休止的加载时间。我以前从未使用过脚本,所以不知道我在做什么。

在目标 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

我不明白为什么我无法访问该工作表,即使我是最初创建该工作表的人。我如何访问该工作表或者我还可以执行哪些操作来导入此范围。非常感谢您的帮助!

google-apps-script google-sheets
2个回答
2
投票

快速浏览一下,您可以尝试简化:

SpreadsheetApp.open(DriveApp.getFileById(ID))...

只是:

SpreadsheetApp.openById(ID)...

两种方法都应该可以正常工作,但是您可以避免使用 DriveApp API,这可能需要一些与电子表格不同的权限。


0
投票

在阅读了一百万篇博客并尝试了无数的技巧和解决方法之后 - 我意识到我的非常简单的错误导致了我所有的 REF!s 错误:

确保您的源文件保存为 Google 表格,而不是 xls(或其他任何文件)。

立即解决了我的所有问题。 :)

祝你好运:)

© www.soinside.com 2019 - 2024. All rights reserved.