在Google Apps脚本保护类中使用setRange()

时间:2015-08-28 16:39:51

标签: google-apps-script google-sheets

我正在尝试改变受保护范围的尺寸,但仍在继续: “找不到方法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);
      }
     }
    }

1 个答案:

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