修复共享工作表中的“有权执行该操作”

时间:2019-01-17 16:23:17

标签: google-sheets permissions access shared

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

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

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");
}

1 个答案:

答案 0 :(得分:0)

浏览器。msgBox()需要授权。

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

请尝试SpreadsheetApp.getActive()。toast()。