我有一个电子表格,我希望用户可以自由输入信息,然后“提交”他们的数据。一旦他们“提交”了这些数据,我想保护一个特定范围,除了所有者之外,所有其他用户都无法编辑该范围内的任何数据;但仍然能够查看和访问此数据以供参考。
我已经尝试了几种方法并且遇到各种各样的障碍。我对谷歌脚本不是很熟悉,但我发现这是自动完成此任务的唯一方法,几乎不需要维护。这样做,我遇到了两个主要障碍:
第一个是正在运行的脚本是基于单元格值保护范围。如果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
如果您有任何我可以尝试的建议或建议,请告诉我!我一直在搜索和修改我的脚本近两个月,但仍然遇到了困难。
谢谢!!!!