【问题标题】:Fix "access to perform that action" in a shared sheet修复共享工作表中的“执行该操作的访问权限”
【发布时间】:2019-01-17 16:23:17
【问题描述】:

简单的工作表脚本缺乏由共享用户运行的权限

我有一个用于为测验评分的简单电子表格。每个测验团队(在不同的位置)都有自己的副本,我已在我的帐户中设置并与他们共享。当电子表格开始允许用户轻松排序分数时,它会运行一个小脚本。对我来说工作正常,但共享用户收到“您无权执行该操作。请请求此项目的所有者授予您访问权限。” 为可能是一个非常基本的问题道歉。我是这个东西的真正新手,我试图做我需要做的事情,但完全失败了! 欢迎任何建议

function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
Browser.msgBox("Starting scoresheet setup");

// Hide working columns

var sheet = ss.getSheets()[0];
sheet.hideColumns(26, 2);

var menuEntries = [
                  {name: "Sort Scores Hi-Lo", functionName: "HiLo"},
                  {name: "Sort Tables A-Z", functionName: "AZ"}];
ss.addMenu("Sort Scores", menuEntries);
Browser.msgBox("'Sort Scores' now set up in Menu, above");
Browser.msgBox("Scoresheet setup complete"); 
}

function HiLo() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var teams2 = ss.getRange("Z2").getValue()
var range = ss.getActiveSheet().getRange(9, 1,  teams2, 26);        // 
Sort area A9 - X20;

//Browser.msgBox("Scoresheet sorted with highest score at the top");
range.sort({column: 22, ascending: false}); 
// Sort descending by column A
Browser.msgBox("Scoresheet sorted with highest score at the top");
}

function AZ() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var teams2 = ss.getRange("Z2").getValue();
var range = ss.getActiveSheet().getRange(9, 1,  teams2, 26);
// Sort area A9 - X20;

//Browser.msgBox("Table sort");
range.sort({column:1, ascending: true}); 
// Sort descending by column A
Browser.msgBox("Scoresheet sorted into Table order A to Z");
}

【问题讨论】:

    标签: google-sheets permissions shared


    【解决方案1】:

    Browser.msgBox() 需要授权。

    Simple triggers (onOpen) 无法调用需要授权的方法。

    改用 SpreadsheetApp.getActive().toast()。

    【讨论】:

    • 对不起,完全是愚蠢的......'toast'指的是什么?
    • 你点击了链接吗?
    猜你喜欢
    • 2012-12-26
    • 1970-01-01
    • 2015-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-13
    • 1970-01-01
    • 2013-04-29
    相关资源
    最近更新 更多