Google apps script 如何取消电子表格中受保护范围的保护

Google apps script 如何取消电子表格中受保护范围的保护,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我有一张任何人都可以通过链接编辑的工作表,还有一个脚本可以保护某个范围不被编辑: var range=playerss.getSheetByName(“Sheet1”).getRange(8,匹配号*3-1,12); var protection=range.protect().setDescription('Bets closed!') var me=Session.getEffectiveUser(); 保护。加法器(me); protection.removeditors(protecti

我有一张任何人都可以通过链接编辑的工作表,还有一个脚本可以保护某个范围不被编辑:

var range=playerss.getSheetByName(“Sheet1”).getRange(8,匹配号*3-1,12);
var protection=range.protect().setDescription('Bets closed!')
var me=Session.getEffectiveUser();
保护。加法器(me);
protection.removeditors(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范围=sheet.getRange(8,匹配号*3-1,12);
var protection=range.protect();
保护。移除();

我遗漏了什么吗?

您可以命名您的范围:

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();
  }
}
var protections=playerss.getProtections(SpreadsheetApp.ProtectionType.RANGE)
对于(变量i=0;i<0.length;i++){
无功保护=保护[i];
if(protection.getRangeName()==“bets-”+matchnumber){
保护。移除();
}
}
祝你好运:)