У меня есть лист Google с именем Dashboard, который защищен вручную, за исключением ячеек A4: C4.
Теперь я хочу, чтобы в ячейке C6 было выбрано «Start 1-Period or Start 2-Period» , приборная панель будет полностью защищена, что означает, что она будет включать защиту в ячейках A4: C4.
Затем через 5 минут защита приборной панели go вернется на предыдущий уровень, то есть панель инструментов защищена, кроме A4: ячейки C4 .
Обратите внимание, что на листе панели инструментов есть пять редакторов, которые останутся без изменений. Для получения подробной информации о сценарии, пожалуйста, проверьте прикрепленное изображение.
function onEdit(e){
if (e.range.getA1Notation() === 'C6' && e.range.getValue() === "Start 1-Period") {
refreshSheet();
onePeriod();
}
if (e.range.getA1Notation() === 'C6' && e.range.getValue() === "Start 2-Period") {
refreshSheet();
twoPeriod();
}
}
function refreshSheet() {
//For protecting dashboard while scripts running
var spreadsheet = SpreadsheetApp.getActive();
var dashboard = spreadsheet.getSheetByName("Dashboard");
var protectionms = dashboard.getProtections(SpreadsheetApp.ProtectionType.RANGE);
for (var i = 0; i < protectionms.length; i++) {
var protectionm = protectionms[i];
if (protectionm.canEdit()) {
protectionm.remove();
}
}
var protectionm = dashboard.protect();
var range = dashboard.getRange('A4:C4');
Utilities.sleep(300000);
protectionm.setUnprotectedRanges([range]);
}
введите описание изображения здесь