Google spreadsheet - Error when Remove range prote

2019-04-12 14:13发布

问题:

Here's my script, but I can't get it to work for some weird reason??!!! Driving me nuts.

function removeThenSetProtection() {
  // Remove all range protections in the spreadsheet that the user has
  //permission to edit.
  var ss = SpreadsheetApp.getActive();
  var protections = ss.getProtections(SpreadsheetApp.ProtectionType.SHEET);

  for (var i = 0; i < protections.length; i++) {
    var protection = protections[i];
    if (protection.canEdit()) {
      protection.remove();
    }
  }
}

回答1:

Change:

var protections = ss.getProtections(SpreadsheetApp.ProtectionType.RANGE);

To:

var protections = ss.getProtections(SpreadsheetApp.ProtectionType.SHEET);

That way, you'll be assured that you are getting a reference to everything that is protected, and future conflicts don't happen.