Защита строк после ввода, когда лист предоставлен пользователям, не являющимся пользователями Google

Вопрос задан: 8 месяцев назад Последняя активность: 8 месяцев назад
up 0 down

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

В настоящее время защита устанавливается при редактировании ячейки. Но, к сожалению, защита не работает, если она заполнена незарегистрированным пользователем. Защита сделана, но не применена.

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

Я создал копия это доступно тем, кто может помочь.

function onEdit(e) {

    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var Sheet = ss.getSheetByName("PLANNING");
    var Range = Sheet.getActiveRange();
    var Row = Range.getRowIndex();

    var Reeks = Sheet.getRange("D"+ Row);

    if (Reeks.getValue() != "") {

        if (Reeks.getValue() != "FOUT") {

            Range.setNote('geboekt op: ' + new Date());

            var LockRange = Sheet.getRange(Row, 6, 1, 2);

            var protection = LockRange.protect().setDescription('Row ' + Row + ' Protected');

            protection.removeEditors(protection.getEditors());
        }
    }
}

2 ответа

up 0 down

Вместо простого триггера используйте устанавливаемый триггер.

  1. Измените имя вашей функции onEdit к чему-то другому, как protectOnEdit
  2. Добавьте устанавливаемый триггер для запуска protectOnEdit (или как вы назвали свою функцию)

Выше, потому что простая триггерная функция не может выполнять методы, требующие авторизации, такие как removeEditors

up 0 down

Я пытаюсь найти причину, по которой скрипт не работает. Настройка триггера, похоже, не работает в любом случае. Я думаю, что это связано с другими средствами защиты, которые возникают. Лист был первоначально защищен с ИСКЛЮЧЕНИЕМ определенного диапазона. Если скрипт хочет защитить строку в этом конкретном диапазоне, оба оператора идут друг против друга.

Я постараюсь выяснить это в ближайшие дни