我共享了一个电子表格,其中包含名为“times”的工作表。 此工作表对其他用户范围 protected ,但他们必须以多种方式查看并对其进行排序。 我用 menuEntries.push 等创建一些菜单... 编写了脚本,以我需要的所有方式对这张表进行排序, 但只有我设置为管理员的人才能使用我的菜单进行排序。 其他人不能这样做,因为他们无法在 protected 范围内执行脚本。 我想仅在脚本执行期间向每个人授予权限, 代码听起来应该像上面这样(不起作用)
function Editors() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var targetSheet = ss.getSheetByName("times");
var user = SpreadsheetApp.getActive().getEditors();
var permission = targetSheet.getSheetProtection();
permission.addUser(user);
SpreadsheetApp.flush();
var tableRange = "orario!b7:ap209";
var tableRange = "times";
var range = ss.getRange(tableRange);
range.sort( { column: 2, ascending: true } );
permission.removeUser(user)
targetSheet.setSheetProtection(permission)
}
...如果有人可以帮助我...提前致谢...
最佳答案
我创建了一个简单的工作表来测试脚本。 这里是: https://docs.google.com/spreadsheets/d/1DhDo_1A20tWdSaYMknAmuxnVJFW14QY6xBXr9BGyS-g/edit#gid=0
如果我使用“menuTeacher”2.和3.作为管理员对工作表进行排序 它工作正常。 但作为用户它不起作用
(仅使用菜单“1.sortSURNAME”来测试权限) 我保护列 A:B 和列 E:M
我把桑迪·古德先生和我一样设置为管理员(他的邮件是 xxxtrashmatXXX@gmail.com) 进行测试....
关于javascript - 添加要运行的脚本的编辑器,然后删除它们 - 临时编辑器权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28715799/