У меня есть защищенный рабочий лист с 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.
Очевидно, я что-то упускаю.
Спасибо.
Попробуйте следующий скрипт:
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
}
После запуска исключение должно выглядеть так:
В моем случае я для теста защитил от А1 до С12.
Справка:
Это работает! Спасибо.