2015-06-28 75 views
2

我有一个表,通过该链接,并保护在一定范围内被编辑的脚本的人是编辑:如何解除对电子表格中的保护范围

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

您可以命名您的范围:

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(); 
    } 
} 

祝你好运:)

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); 
} 

您可以使用该名称中删除保护

相关问题