首页 文章

Google电子表格自定义功能权限[重复]

提问于
浏览
1

这个问题在这里已有答案:

我正在尝试为google电子表格编写自定义函数,但我遇到了左右许可错误 . 为了开始工作,我将其输入左上角的单元格: "=testFunction()" . 在该函数中,我尝试突出显示并根据用户选择一行,并遇到以下问题:

  • 我没有权限调用 Session.getActiveUser() 方法,所以我可以't do anything based on the user accessing the document. Also, the getUrl function doesn' t返回实际的url,所以在最后添加像"#Jeff"这样的东西是行不通的 . 注意:我最终解决了这个问题,因为令我惊讶的是, Spreadsheet.getViewers 函数正常工作 .

  • 我没有't have permission to run the Spreadsheet.setActiveSelection() function, so I can' t选择一行 .

  • 如果我从单元格A运行该函数,我无权更改单元格B的背景 . 这意味着我需要将我破碎的高亮显示功能放在我想要更改颜色的每个单元格中 .

查看如何做某事,测试它,以及观看权限错误四次中有三次出现令人沮丧 . 考虑到我是本文档的所有者,有没有办法改变我有权做的事情?如果没有,是否有任何关于我可以运行的功能的文档?

2 回答

  • 1

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

  • 0

    我注意到,单元格中的自定义函数无法执行auth-required方法,但如果您让脚本被触发,则可以运行脚本 .

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

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

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

    =getTheUser()
    

    单元格标有"error: You do not have permission to call getActiveUser (line 9, file "代码")"

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

    我的计划是使用触发器来运行auth-required函数 .

相关问题