Google script - Как использовать лист, используемый другим человеком, а здесь функцию, которая будет изменять данные в защищенной области мной - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть вопрос о том, как функция все еще может взаимодействовать в защищенной ячейке, к которой у пользователя нет прямого доступа.

давайте представим очень простой лист, на котором я просто хочу, чтобы кто-нибудь (так кто-то еще) чем я) работа над ним будет , хотя функция обновит столбцы № 1 и № 2 в строке, в которой он находится, и эта функция поместит обе текущие даты. .... но ... В то же время я защитил столбец № 1, чтобы он мог редактироваться только мной. Rq: для контрольной колонки № 2 не защищено

Наблюдения:

  • Если защита отсутствует ... функция корректно обновляет столбец № 1 n ° 2 и поместите дату в обе ячейки

  • Как только появится защита, функция запускается, но завершается в тот момент, когда она пытается обновить столбец № 1, как следствие этого даже не обновляйте столбец n ° 2

Мои мечты:

Поскольку я владелец листа и кода, мне было бы очень интересно найти способ, чтобы: 1) мой код был защищен и, следовательно, не мог быть изменен кем-либо; 2) мой код был выполнен и изменил то, что я хочу, даже если кто-то использовал его в защищенной ячейке

Каким-то образом это просто естественный подход к объектной модели и модификация личных данных с помощью функции publi c.

Пример с датой - basi c и глупый, но он позволит поставить более сложные логики c с некоторые данные, которые не могут быть изменены кем-либо e (например, данные ha sh или последняя дата обновления для примера)

ПОЖАЛУЙСТА, ПОМОГИТЕ !!!!!!

MERCI

Чтобы проверить это:

Просто откройте редактор скриптов на пустом листе и введите этот код

function onEdit (e)
{
   var CurRow = e.range.getRow();
   e.getActiveSheet().getRange(CurRow, 1,).setValue(new Date());
}

1 Ответ

1 голос
/ 27 апреля 2020

Почему в листах существует защита?

Ответ: для предотвращения доверенных пользователей от *1007* случайного внесения изменений.

Точка # 1 Ничто не защищено на самом деле , если у кого-то есть доступ к редактированию вашего листа.

Точка # 2 Просто укажите эти c ячеек незащищены, если вы разрешите им редактировать ваши ячейки с помощью функции, то они больше не будут защищены, потому что они могут go в редакторе GAS (Google App Script) и делать все, что захотят ...

Сводка: Если вы даете кому-то доступ к редактированию вашего листа, то ничто не защищено на самом деле, если вы не можете доверять своим редакторам, вам понадобится, чтобы они отредактировали этот лист за пределами листов Google.

Бонус: onEdit ненадежен и не всегда выполняется.

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