Страницы: 1
RSS
Авто перенос защищённого диапазона Google таблици, Перенос защищённого диапазона при создании копии листа
 
Здравствуйте, подскажите пожалуйста как можно реализовать чтобы при копировании листов в Google таблицах сразу переносился и защищённый диапазон на новые таблици или как сделать заблокированную зону на всех листах сразу.
У меня есть диапазон e3:f8 на шаблон листе и мне надо чтобы на его копиях он появлялся автоматически или чтобы этот диапазон был сразу заблокирован на всей таблице и листах в независимости от листа.
 
Привет, попробуйте такой вариант:

  1. Запишите пустой макрос: Расширения > Макросы > Записать макрос. Сразу нажмите "Сохранить" и дайте ему имя.
  2. После сохранения в левом нижнем углу окна браузера будет уведомление "Макрос сохранен.", нажмите на "Изменить скрипт" в уведомлении.
  3. Откроется Apps Script текущей таблицы. Найдите Макросы.gs.
  4. Зайдите в него и найдите функцию, которая имеет имя, которое вы присвоили макросу.
  5. Замените всё внутри функции на следующий код:
Код
  const calledFromSS = SpreadsheetApp.getActive();
  const newSS = calledFromSS.duplicateActiveSheet();
  const range = newSS.getRange('E3:F8');
  const protection = range.protect();//.setDescription('Test');
  // Удаление всех из редактирования диапазона, кроме себя.
  const owner = Session.getEffectiveUser();
  protection.addEditor(owner);
  protection.removeEditors(protection.getEditors());
  if (protection.canDomainEdit()) {
    protection.setDomainEdit(false);
  }
Пример, как это выглядит у меня, во вложении.

После проделанных действий вам будет доступен макрос который копирует лист, из которого он вызван и защищает указанный диапазон. Если нужно поменять защищаемый диапазон, то введите его адрес в этой строке:
Код
const range = newSS.getRange('E3:F8');
Страницы: 1
Наверх