Ответ:
К сожалению, это невозможно сделать.
Дополнительная информация:
Google Sheets делает иметь возможность скрывать / показывать разные листы, а также может изменять их при открытии листа. Однако в вашей ситуации есть две проблемы:
- Единственный способ запуска функций при открытии листа - это если пользователь, открывающий лист, имеет права на редактирование; Только для чтения недостаточно.
- Изменения применяются ко всему Листу, а не только к одному пользователю.
Давайте предположим следующий сценарий:
У вас есть сценарий, который проверяет статус разрешения пользователя, открывающего файл, и скрывает для него все листы. кроме прошлого, текущего и следующего месяца. Примерно так:
function permissionChanging() :
user = userThatOpenedTheFile;
if userThatOpenedTheFile.Permission = read-only:
sheets.hide(all-sheets-except-past-current-and-following)
else if userThatOpenedTheFile.Permission = write:
sheets.show(all)
Теперь давайте рассмотрим двух пользователей:
- Пользователь A, пользователь с доступом только для чтения к листу.
- Пользователь B , пользователь с правами записи.
Теперь, если пользователь A открывает файл, так как у него есть доступ только для чтения, функция не будет запускаться - , как описано в документации по сценарию. .
Предположим теперь для мысленного эксперимента, что пользователь A смог запустить функцию:
Когда пользователь A откроет лист, функция будет работать, и все листы будут скрыты, за исключением текущего, предыдущего и следующего месяцев. Они могут с удовольствием взглянуть на лист в этой текущей форме.
Теперь пользователь B открывает форму, до того, как пользователь A закрыл ее . Сценарий запускается снова - теперь он скрывает все листы. Поскольку электронная таблица хранится в облаке, изменения применяются ко всем читателям листа - так что теперь, когда у пользователя A уже открыт лист, Измененные распространяются на их вид, и теперь они могут видеть все Листы.
Я знаю, что это, как правило, плохие новости, но я надеюсь, что это полезно для вас!
Ссылки: