0

我正在尝试为 Google 表格编写一个自定义函数,但我遇到了左右权限错误。只是为了让事情开始,我在左上角的单元格中输入了这个:"=testFunction()". 在函数中,我尝试根据用户突出显示并选择一行,结果遇到了以下问题:

  1. 我没有调用该Session.getActiveUser()方法的权限,所以我不能根据访问文档的用户做任何事情。此外,该getUrl函数不会返回实际的 URL,因此在末尾添加“#Jeff”之类的内容是行不通的。注意:我最终确实解决了这个问题,因为令我惊讶的是,该Spreadsheet.getViewers功能有效。
  2. 我没有运行该Spreadsheet.setActiveSelection()功能的权限,所以我无法选择一行。
  3. 如果我从单元格 A 运行该函数,我无权更改单元格 B 的背景。这意味着我需要将损坏的突出显示功能放在每个要更改颜色的单元格中。

查找如何做某事,对其进行测试,然后看到权限错误四分之三弹出,这令人沮丧。

考虑到我是此文档的所有者,有什么方法可以更改我有权执行的操作吗?

如果没有,是否有关于我可以运行哪些功能的文档?

4

2 回答 2

1

不允许自定义函数访问用户特定的服务

于 2013-08-16T08:08:41.883 回答
1

我注意到的是来自单元格的自定义函数不能执行需要身份验证的方法,但是如果您让脚本被触发,您可以让您的脚本运行。

示例:我编写了与我的工作表相关联的脚本函数。

function getTheUser() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  sheet.getRange('a1').setValue(Session.getActiveUser());
}

如果我把它放在一个牢房里

=getTheUser()

单元格被标记为“错误:您无权调用 getActiveUser(第 9 行,文件“代码”)”

但是,如果我转到项目的脚本并为该函数创建触发器,则只要满足触发器条件,该函数就会运行正常。

我的计划是使用触发器来运行需要身份验证的功能。

于 2014-02-09T02:48:33.757 回答