工作表复制脚本:其他用户运行脚本时未设置保护

我正在与其他人共享Google表格,并且仅通过电子邮件ID启用共享。我创建了一个脚本,该脚本在运行时会复制一个主表,并将权限和保护设置为复制的主表中的主表。在主表中放置了一个用于执行此脚本的按钮。

当我(所有者)运行脚本时,保护被很好地复制,其他用户无法访问受保护的单元格,但是当工作表的其他编辑者运行脚本时,会出现问题,新创建的工作表使他们具有全部编辑权限受保护的字段。

我编写的代码如下:

function Protect() {
  var spreadsheet = Spreadsheetapp.getactive();
  var myValue = Spreadsheetapp.getactiveSheet().getSheetName();
  spreadsheet.duplicateactiveSheet();
  var totalSheets = countSheets() - 3;
  myValue = "DO" + totalSheets;
  Spreadsheetapp.getactiveSpreadsheet().renameactiveSheet(myValue);
  var protection = spreadsheet.getactiveSheet().protect();
  protection.setUnprotectedRanges([spreadsheet.getRange('C2:E5'),spreadsheet.getRange('C6:D6'),spreadsheet.getRange('F5:G5'),spreadsheet.getRange('F6:G6'),spreadsheet.getRange('B9:B18'),spreadsheet.getRange('C9:G18'),spreadsheet.getRange('D20:D22'),spreadsheet.getRange('G20:G22'),spreadsheet.getRange('B20:B22'),spreadsheet.getRange('E21'),spreadsheet.getRange('E20')])
    .removeEditors(['user2@domain.com','user3@domain.com']);
  spreadsheet.getRange('G2').activate();
  spreadsheet.getRange('G2').setvalue(myValue);
  spreadsheet.getRange('G3').activate();
  spreadsheet.getRange('G3').setvalue(new Date()).setNumberFormat('dd-MMM-YYYY');
  spreadsheet.getRange('C2').activate();
  hideImage();
};
iCMS 回答:工作表复制脚本:其他用户运行脚本时未设置保护

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/1791252.html

大家都在问