Блокировка вкладки Google Sheet на основе даты + времени - PullRequest
0 голосов
/ 26 мая 2019

У меня есть лист Google с определенным листом, который я хотел бы защитить от редактирования на основе даты и времени. Я видел код для этого для определенных ячеек, но я хочу сделать это для всего листа и сохранить список редакторов (просто защитить от публичного редактирования).

Я пытался использовать код, который нашел здесь: Блокировка ячеек в Google Sheets в определенное время , но не уверен, как изменить этот код для моего варианта использования.

EDIT:

Глядя на эту страницу поближе: https://developers.google.com/apps-script/reference/spreadsheet/protection, похоже, поможет следующий код:

// Protect range A1:B10, then remove all other users from the list of editors.


var ss = SpreadsheetApp.getActive();
var range = ss.getRange('A1:B10');
var protection = range.protect().setDescription('Sample protected  range');

// Ensure the current user is an editor before removing others. Otherwise, if the user's edit
// permission comes from a group, the script throws an exception upon removing the group.
var me = Session.getEffectiveUser();
protection.addEditor(me);
protection.removeEditors(protection.getEditors());
if (protection.canDomainEdit()) {
  protection.setDomainEdit(false);
}

Однако как мне объявить конкретное имя листа? У меня есть несколько вкладок в моей таблице. Что getActive собирается потянуть?

1 Ответ

0 голосов
/ 27 мая 2019

Однако, как мне объявить конкретное имя листа? У меня есть несколько вкладок в моей таблице. Что getActive собирается потянуть?

SpreadsheetApp.getActive() возвращает объект Spreadsheet, представляющий электронную таблицу, содержащую код, в котором скрипт является ограниченным сценарием, или электронную таблицу, которая вызвала функцию надстройки, содержащей сценарий.

Используйте getSheetByName (name) , чтобы получить объект Sheet по его имени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...