gpt4 book ai didi

google-apps-script - 如何取消保护电子表格中的 protected 范围

转载 作者:行者123 更新时间:2023-12-04 18:03:32 25 4
gpt4 key购买 nike

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

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 不起作用,因为它会覆盖我拥有的任何其他未 protected 范围,并且不会删除 protected 范围,这意味着我仍然无法编辑该范围。以下也不起作用:

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

您可以使用名称移除保护:

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

祝你好运:)

关于google-apps-script - 如何取消保护电子表格中的 protected 范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31101923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com