Разрешить пользователям редактировать указанный диапазон c только при использовании общего ресурса типа «только для просмотра» - PullRequest
0 голосов
/ 01 марта 2020

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

Я действительно хочу поделиться документом как файлом «Только для просмотра», хотя я все еще хочу, чтобы пользователи изменили диапазон, в котором находится кнопка, чтобы они могли щелкнуть по нему и запустить скрипт.

Я пытался защитить листы и удаление редакторов через Apps Script с использованием защиты классов, но это, похоже, не работает - я создал нижеприведенное, что, как я надеялся, сработает:

  var ss = SpreadsheetApp.getActiveSpreadsheet(); 
  ss.getSheetByName('BALANCE SHEET').protect();
  ss.getSheetByName('LANDING SHEET').protect();
  ss.getSheetByName('CATEGORIES').protect();
  ss.getSheetByName('REMINDERS').protect();
  var user = ss.getEditors();
  ss.removeEditor(user);
  ss.addEditor('xxx@xxx.xxx');

Кто-нибудь знает, как я могу сделай это пожалуйста?

1 Ответ

1 голос
/ 01 марта 2020

Spreadsheet.getEditors() возвращает массив из user s , тогда как removeEditor принимает user (единственное число ) в качестве аргумента. Используйте Array.forEach для удаления пользователей:

const users = ss.getEditors();
users.forEach(user =>  ss.removeEditor(user));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...