我正在尝试改变受保护范围的尺寸,但仍在继续: “找不到方法setRange(string)”
Google Developers网站没有提供任何示例。 请参阅:https://developers.google.com/apps-script/reference/spreadsheet/protection#setrangerange
我应该如何在下面的代码中使用setRange()?
function editIt() {
var ss = SpreadsheetApp.getActive();
var protections = ss.getProtections(SpreadsheetApp.ProtectionType.RANGE);
for (var i = 0; i < protections.length; i++) {
var protection = protections[i];
if (protection.getRangeName() == 'Test') {
var range = 'A7:A28';
protection.setRange(range);
}
}
}
答案 0 :(得分:1)
setRange()
获取范围对象,而不仅仅是具有范围尺寸的字符串。因此,您必须使用sheet.getRange(a1Notation)
获取范围对象。你的代码就是这个
function editIt() {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getActiveSheet(); // additional line to get sheet
var protections = ss.getProtections(SpreadsheetApp.ProtectionType.RANGE);
for (var i = 0; i < protections.length; i++) {
var protection = protections[i];
if (protection.getRangeName() == 'Test') {
var range = sheet.getRange('A7:A28'); // edited line
protection.setRange(range);
}
}
}