我有一個受保護的作業表,其中包含 7 個不受保護的范圍例外。我想從作業表上的另一個范圍(一個單元格)中洗掉保護,總共有 8 個不受保護的范圍。我已經閱讀了 SO 中的幾個示例,但到目前為止似乎沒有一個有效。
這是我的代碼
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 中洗掉。
顯然,我錯過了一些東西。
謝謝。
uj5u.com熱心網友回復:
嘗試以下腳本:
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 進行了測驗。
參考:
- setUnprotectedRanges()
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/477102.html
下一篇:如何使用1個公式按日期計算專案?
