Автоблокировка ячеек Google Sheets после первой записи - PullRequest
0 голосов
/ 02 января 2019

Я пытаюсь использовать Google Sheets в качестве регистра продаж для моей компании.Тем не менее, есть конкретная деталь, которую я хотел бы настроить для ввода информации, но пока не могу ее разобрать.

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

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

1 Ответ

0 голосов
/ 02 января 2019

Вы можете попробовать установить триггер при редактировании для приведенного ниже кода.

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

function protectOnEdit(event) {

  var range = event.range;
  var timeZone = Session.getScriptTimeZone();
  var stringDate = Utilities.formatDate(new Date(), timeZone, 'dd/MM/yy HH:mm');
  var description = 'Protected on ' + stringDate;
  var protection = range.protect().setDescription(description);

  // below code taken directly from Google's documentation (second comment is my own):

  // 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();
  //user who installed trigger

  protection.addEditor(me);
  protection.removeEditors(protection.getEditors());
  if (protection.canDomainEdit()) {
    protection.setDomainEdit(false);
  }
}

Ссылка

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