【问题标题】:How to set protection for everyone with google script for spreadsheet?如何使用电子表格的谷歌脚本为每个人设置保护?
【发布时间】:2020-01-16 08:48:49
【问题描述】:

我正在创建一个复制粘贴工作表的脚本。复制的表格对所有人(所有者我除外)都受到保护。当用户单击按钮时,脚本运行并复制粘贴我的主工作表,脚本为所有用户设置保护,除了他自己和我(所有者)。 这是脚本的一部分,您可以理解:

function protect(){
  var s = SpreadsheetApp.getActive();
  var copy = s.getSheetByName('BEI-').copyTo(s);
  var newsheet = copy.setName(NouvDem);
  var SheetToProtect=s.getSheetByName(NouvDem).activate();
  SheetToProtect.protect();
  var AllProtections = SheetToProtect.getProtections(SpreadsheetApp.ProtectionType.SHEET);
  var MyProtection = AllProtections[0];
  var Users = MyProtection.getEditors();
  MyProtection.removeEditors(Users);
}

如何保护新工作表免受他自己的影响(只能使用脚本修改工作表)?

谢谢! :)

【问题讨论】:

    标签: google-apps-script edit spreadsheet protection


    【解决方案1】:

    不可能

    当用户复制您的工作表时,他将成为该副本的所有者,因此他不能限制自己对其进行编辑。此外,用户无法保护 Range 不受自己的影响。

    最接近的解决方案是设置Warning,但这只会显示一个可跳过的弹出窗口,询问用户是否确定要编辑该范围。

    但是,您可以自己创建副本并与用户共享,然后限制他们可以访问的范围。

    【讨论】:

    • 你确定他是这张表的所有者吗?我的意思是我应该仍然是整个文件的所有者,对吗?如果无法进行保护,我想添加一个警告。谢谢你的回答!
    • 当用户运行脚本并复制Sheet时,新副本归用户所有,但您仍保留原始文档的所有权。因此,用户无法在复制的工作表中保护单元格不受自己的影响。如果有用,请考虑接受答案。干杯!
    • 好的!现在明白了,谢谢!所以绝对不可能保护项目免受其他用户的伤害?
    • 来自其他用户,是的,但来自文件的所有者,不是。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-15
    相关资源
    最近更新 更多