取消保护受保护 Sheet 中的范围
Unprotect a range in a Protected Sheet
我有一个受保护的作品sheet,其中有 7 个未受保护的范围例外。我想从 sheet 上的另一个范围(一个单元格)中移除保护,总共 8 个未受保护的范围。我已经在 SO 中阅读了几个示例,但到目前为止 none 似乎有效。
这是我的代码
var ss=SpreadsheetApp.openById('id'); // get sheet
ss.getSheetByName('Sheet1').getRange(4,2,1,1).protect().remove(); //get and remove protection on cell
ss.getSheetByName('Sheet1').getRange(5,2,1,1).setValue('Code ran'); //confirm code ran
如您所见,我运行一行确认代码为运行,确实如此。但保护并未从单元格范围 4,2,1,1 中移除。
显然,我遗漏了一些东西。
谢谢。
尝试以下脚本:
function myfunction()
{
var ss=SpreadsheetApp.openById('ID'); // get sheet
var range = ss.getSheetByName('Sheet1').getRange(4,2,1,1); // gets the specific range you are trying to unprotect.
ss.getSheetByName('Sheet1').protect().setUnprotectedRanges([range]); //adds the exception to the current protection.
ss.getSheetByName('Sheet1').getRange(5,2,1,1).setValue('Code ran'); //confirm code ran
}
在 运行 之后,异常应该如下所示:
在我的例子中,我从 A1 保护到 C12 进行测试。
参考:
我有一个受保护的作品sheet,其中有 7 个未受保护的范围例外。我想从 sheet 上的另一个范围(一个单元格)中移除保护,总共 8 个未受保护的范围。我已经在 SO 中阅读了几个示例,但到目前为止 none 似乎有效。
这是我的代码
var ss=SpreadsheetApp.openById('id'); // get sheet
ss.getSheetByName('Sheet1').getRange(4,2,1,1).protect().remove(); //get and remove protection on cell
ss.getSheetByName('Sheet1').getRange(5,2,1,1).setValue('Code ran'); //confirm code ran
如您所见,我运行一行确认代码为运行,确实如此。但保护并未从单元格范围 4,2,1,1 中移除。
显然,我遗漏了一些东西。
谢谢。
尝试以下脚本:
function myfunction()
{
var ss=SpreadsheetApp.openById('ID'); // get sheet
var range = ss.getSheetByName('Sheet1').getRange(4,2,1,1); // gets the specific range you are trying to unprotect.
ss.getSheetByName('Sheet1').protect().setUnprotectedRanges([range]); //adds the exception to the current protection.
ss.getSheetByName('Sheet1').getRange(5,2,1,1).setValue('Code ran'); //confirm code ran
}
在 运行 之后,异常应该如下所示:
在我的例子中,我从 A1 保护到 C12 进行测试。
参考: