Как установить защиту для всех с помощью скрипта Google для электронных таблиц? - PullRequest
1 голос
/ 16 января 2020

Я создаю скрипт, который копирует и вставляет лист. Скопированный лист защищен для всех (кроме меня, владельца). Когда пользователь нажимает на кнопку, скрипт запускается и копирует и вставляет мой основной лист, скрипт устанавливает защиту для всех пользователей, кроме него самого и меня (владельца). Вот часть сценария, чтобы вы могли понять:

function protect(){
  var s = SpreadsheetApp.getActive();
  var copy = s.getSheetByName('BEI-').copyTo(s);
  var newsheet = copy.setName(NouvDem);
  var SheetToProtect=s.getSheetByName(NouvDem).activate();
  SheetToProtect.protect();
  var AllProtections = SheetToProtect.getProtections(SpreadsheetApp.ProtectionType.SHEET);
  var MyProtection = AllProtections[0];
  var Users = MyProtection.getEditors();
  MyProtection.removeEditors(Users);
}

Как защитить новый лист от самого себя (, чтобы он мог использовать сценарии только для изменения листа )?

Спасибо! :)

1 Ответ

1 голос
/ 16 января 2020

Это невозможно .

Когда пользователь делает копию вашего листа, он становится владельцем этой копии, поэтому он не может ограничивать себя от редактирования. Кроме того, пользователь не может защитить Range от самого себя.

Ближайшим решением является установка Warning , но при этом отображается только пропускаемое всплывающее окно, спрашивающее пользователя, уверен ли он он хочет редактировать этот диапазон.

Однако вы можете создать копии самостоятельно и поделиться ими с пользователями, а затем ограничить диапазоны, к которым они имеют доступ.

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