Исправить «доступ для выполнения этого действия» в общем листе - PullRequest
0 голосов
/ 17 января 2019

Скрипт простого листа не имеет разрешения на запуск от общего пользователя

У меня есть простая таблица для оценки теста. У каждой команды викторины (в разных местах) есть своя копия, которую я настроил в своей учетной записи и поделился с ними. Электронная таблица запускает небольшой скрипт, когда он начинает, чтобы позволить пользователю легко сортировать результаты. У меня нормально работает, но общий пользователь получает: «У вас нет доступа для выполнения этого действия. Пожалуйста, попросите владельца этого элемента предоставить вам доступ». Извиняюсь за то, что, вероятно, действительно основной вопрос. Я настоящий новичок в этом деле, и я пытался понять, что мне нужно делать, но потерпел неудачу полностью! Любой совет приветствуется

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 голосов
/ 18 января 2019

Браузер. msgBox () требуется авторизация.

Простые триггеры (onOpen) не могут вызывать методы, требующие авторизации.

Попробуйте вместо этого использовать SpreadsheetApp.getActive (). toast ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...