App-Scripts-如何一次取消对一系列重复范围的保护?

App-Scripts- How to unprotect series of repeated ranges at once?

我想保护我的整个 sheet 但只想要一些不受保护的范围,这些范围在重复的进展系列中。所以我不想创建一个新的范围并将其添加到未受保护的范围。有没有更短的方法。只是给你们一张大图,我有动态 sheet,有 40 行和“n”列。但我想从 Col3 C5:F35 unprotected 开始,然后完全跳过 4 列,然后再次 K5:N35 unprotected 等等,直到 lastCol。我有大量的列,所以手动执行此操作几乎是不可能的。对此问题的帮助将不胜感激。我附上了一张图片,可能有助于消除一些困惑。

spreadsheet screenshot attached

我建议使用 Google 脚本,让它保护范围,而不是保护范围,如下所示:

function protectColumns() {
  let ss = SpreadsheetApp.getActive();
  let spreadsheet = ss.getSheets()[0];

  let lastColumn = spreadsheet.getLastColumn();
  let lastRow = spreadsheet.getLastColumn();

  let range = spreadsheet.getRange(1, 1, lastRow, 2); // Sets the range from Row 1 Column1 to Last Row Column 2
  let protection = range.protect().setDescription('Sample protected range');

  for(let i=7; i<lastColumn; i+=8) { //Starting at column 7, Protect 4 rows, skip 4 rows, repeat
    range = spreadsheet.getRange(1, i, lastRow, 4);
    range.protect().setDescription('Sample protected range');
  }
}

我认为这应该符合您的要求。它保护前 2 行,跳过接下来的 4 行,保护接下来的 4 行,然后重复。我只会警告它可能会错过保护专栏的最后一部分。如果有任何问题,请告诉我。