Скрипт приложения google - как разрешить другим пользователям редактировать ячейку, защищенную только мной, с помощью скрипта?

У меня есть Лист продаж, доступ к которому есть только у меня.

У меня есть Лист формы продажи (не Google Form, а In-Spreadsheet Form), который может вводить данные в Лист продаж через Скрипт приложения Google, а другие пользователи могут получить доступ к этому Лист формы продажи.

Но вкратце, другие пользователи не могут вводить данные в Лист продаж. Ошибка «Вы пытаетесь редактировать защищенную ячейку или объект. Бла бла бла ...»

Есть ли какое-нибудь решение, которое может заставить других пользователей вводить данные в ячейку, защищенную только от меня, через скрипт?

Спасибо.

0
0
614
2

Ответы 2

Да, опубликуйте скрипт как веб-приложение с возможностью запуска от имени меня и установки доступа для всех в вашем домене или анонимно.

В файле сценария создайте функцию doGet() и вызовите сценарий из этой функции.

function doGet(e){
  submitForm(); // This is your function that writes to the protected sheet
}

Переход по URL-адресу веб-приложения затем запустит сценарий от вашего имени и позволит пользователю без предварительного разрешения редактировать лист для отправки данных от вашего имени.

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

Например, предположим, что у 'Sales Sheet'!A1:Z10 есть данные, но все оставшиеся строки пусты. Вы бы защитили только 'Sales Sheet'!A1:Z10. Когда кто-то отправляет новые данные, эти данные будут помещены в строку 11. Ваша функция, управляемая временем (возможно, каждую минуту), затем изменит защиту, включив в нее строку 11 - 'Sales Sheet'!A1:Z11.

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

Другой вариант - отправить данные в форму Google через скрипт приложений, сохранить результаты формы в новую электронную таблицу, а затем выполнить =IMPORTRANGE(), чтобы другие пользователи могли по-прежнему видеть отправлений.

Другие вопросы по теме