2017-02-20 1 views
0

Я наблюдаю за текущим поведением в том, что этот триггер onOpen в скрипте Google Apps на листе устанавливает только активный лист, если пользователь может редактировать разрешения.Сценарий Google Apps - Spreadsheet.setActiveSheet не распознается, когда разрешение не разрешает редактирование

function setAppropriateMonthWorkbookBasedOnDate() { 
    currentSpreadSheet = SpreadsheetApp.getActive(); 

    var dateObject = new Date() 
    monthName = Utilities.formatDate(dateObject, Session.getScriptTimeZone(), "MMMMM") 
    targetWorksheet = currentSpreadSheet.getSheetByName(monthName) 
    currentSpreadSheet.setActiveSheet(targetWorksheet); 
} 

function onOpen(e) { 
    setAppropriateMonthWorkbookBasedOnDate(); 
} 

Я переключился разрешения пользователя на любой из них может комментировать или просматривать и setActiveSheet вызова кажется больше не работает.

Я изо всех сил стараюсь увидеть что-либо в этом коде, которое будет считаться «редактированием». Единственное действие модификации, которое я вижу, это вызов setActiveSheet.

Это было проверено на двух разных листах: 1) мой лист производства и 2) доказательство - это выбросить лист.

Мысли о том, что может происходить здесь?

ответ

1

Триггеры работать только тогда, когда пользователь имеет привилегии редактирования:

OnOpen (е) выполняется, когда пользователь открывает таблицу, документ или форму, что он или она имеет разрешение на редактирование.

Смотреть все подробности здесь: https://developers.google.com/apps-script/guides/triggers/

+0

Спасибо, полностью пропустил, что чтение справочного материала. Было бы неплохо, если бы он работал на других уровнях разрешения тоже, как даже «Can Comment». Я думаю, что мой случай использования не так уж и необычен. Возможно, потребуется сосредоточить область электронной таблицы, которую вы можете просмотреть, на основе информации, определенной 'onOpen'. – Cato0293

Смежные вопросы