我有一张工作表,任何人都可以使用该链接和一个保护特定范围的脚本进行编辑:
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
无法正常工作,因为它会覆盖我拥有的任何其他未受保护的范围,也不会删除受保护的范围,这意味着我仍然无法编辑该范围。以下也不起作用:
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();
我错过了什么吗?
答案 0 :(得分:0)
您可以为您的范围命名:
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);
}
您可以使用以下名称删除保护:
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();
}
}
祝你好运:)