如何取消保护电子表格中的受保护范围 [英] How to unprotect a protected range in spreadsheet
本文介绍了如何取消保护电子表格中的受保护范围的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个带有链接的任何人都可以编辑的工作表,以及一个可以保护特定范围以免被编辑的脚本:
I have a sheet that is editable by anyone with the link and a script that protects a certain range from being edited:
var range = playerss.getSheetByName("Sheet1").getRange(8,matchnumber*3-1,12);
var protection = range.protect().setDescription('Bets closed!')
var me = Session.getEffectiveUser();
protection.addEditor(me);
protection.removeEditors(protection.getEditors());
if (protection.canDomainEdit()) {
protection.setDomainEdit(false);
}
如何简单地删除此保护? setUnprotectedRanges
不起作用,因为它会覆盖我拥有的任何其他不受保护的范围,也不会删除受保护的范围,这意味着我仍然无法编辑该范围.以下内容也不起作用:
How do I simply remove this protection? setUnprotectedRanges
doesn't work because it overwrites any other unprotected ranges that I had and doesn't remove the protected range either, meaning I still can't edit that range. The following also doesn't work:
playerssid = refss.getSheetByName(sname).getRange(i,6).getValue();
playerss = SpreadsheetApp.openById(playerssid);
var sheet = playerss.getSheetByName('Sheet1');
var range = sheet.getRange(8,matchnumber*3-1,12);
var protection = range.protect();
protection.remove();
我想念什么吗?
推荐答案
您可以命名您的范围:
var range = playerss.getSheetByName("Sheet1").getRange(8,matchnumber*3-1,12);
var protection = range.protect().setDescription('Bets closed!').setRangeName("bets-"+matchnumber);
var me = Session.getEffectiveUser();
protection.addEditor(me);
protection.removeEditors(protection.getEditors());
if (protection.canDomainEdit()) {
protection.setDomainEdit(false);
}
您可以使用以下名称删除保护:
you can remove the protection with using the name:
var protections = playerss.getProtections(SpreadsheetApp.ProtectionType.RANGE)
for (var i = 0; i < protections.length; i++) {
var protection = protections[i];
if (protection.getRangeName() == "bets-"+matchnumber){
protection.remove();
}
}
祝你好运:)
这篇关于如何取消保护电子表格中的受保护范围的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文