Google Script自动范围保护

时间:2018-06-18 14:11:51

标签: google-apps-script google-sheets

我有一个电子表格,我希望用户可以自由输入信息,然后“提交”他们的数据。一旦他们“提交”了这些数据,我想保护一个特定范围,除了所有者之外,所有其他用户都无法编辑该范围内的任何数据;但仍然能够查看和访问此数据以供参考。

我已经尝试了几种方法并且遇到各种各样的障碍。我对谷歌脚本不是很熟悉,但我发现这是自动完成此任务的唯一方法,几乎​​不需要维护。这样做,我遇到了两个主要障碍:

第一个是正在运行的脚本是基于单元格值保护范围。如果N7的单元格值为“已批准”,则应该保护该范围。发生的事情是脚本正在保护范围,无论单元格值是什么(值可以是空白或不同的单词,它仍然会保护范围)。

第二个问题是,如果脚本运行“按钮”或录制的宏,脚本将不会删除编辑器单击按钮。因此,对于这个问题,我(所有者)需要每次都单击按钮删除所有编辑器。

我现在拥有的当前脚本如下所示。此脚本用于在打开时根据N7中的单元格值执行保护:

function onOpen() {
  var spreadsheet = SpreadsheetApp.getActive();
  var approvedCellD1 = spreadsheet.getRange('N7').getValue();
  var rangeD1 = spreadsheet.getRange('B5:L64');
  var protectionD1 = rangeD1.protect().setDescription('Day 1 Approved');

  if(approvedCellD1 == "Approved") {
    protectionD1.removeEditors(protectionD1.getEditors());
    protectionD1.addEditor(['myemail@gmail.com']);
    if (protectionD1.canDomainEdit()) {
      protectionD1.setDomainEdit(false);
    }
  }
};

我使用主要组件制作了一个类似版本的电子表格,但仍然收到相同的问题。

https://docs.google.com/spreadsheets/d/19NReUL2GSNWjMGrzvskQx86JDWox3e2wzDpk3PnKGX4/edit?usp=sharing

如果您有任何我可以尝试的建议或建议,请告诉我!我一直在搜索和修改我的脚本近两个月,但仍然遇到了困难。

谢谢!!!!

0 个答案:

没有答案