У меня есть сценарий с привязкой к контейнеру, который переводит активную ячейку в любой активный лист, который пользователь использует в Google Sheets, для создания электронного письма для отправки.Код работал отлично, пока я не поделился им с несколькими пользователями, у которых у всех есть права «редактировать» электронную таблицу.Теперь сценарий, похоже, не запускается, он даже не будет публиковать журналы, которые я встроил в сценарий, и в редакторе сценариев не будет отображаться запись выполнения.
Вот код основной функции (sendEmailSheet), который вызывает две другие функции, которые есть в файле сценария:
function onOpen(e) {
SpreadsheetApp.getUi()
.createMenu('emailsFromSheet')
.addItem('Run Script!', 'sendEmailSheet')
.addToUi();
}//without this there is no trigger under the add-ons menu
function sendEmailSheet(){
Logger.log('the function at least starts');
try {
var sheet = SpreadsheetApp.getActiveSheet();
} catch (e) {
console.error('couldn\'t get active sheet: ' + e);}
Logger.log(sheet);
try{
var sheetName = sheet.getSheetName(); }
catch (e) {
console.error('couldn\'t get sheet name: ' + e);
}
Logger.log(sheetName);
if(sheetName == "sendEmail"){
sendEmailTemplate(sheet);
}
else if(sheetName == "createDraft"){
createDraftTemplate(sheet);
}
else{ //catch errors
SpreadsheetApp.getUi().alert('There is an error, perhaps one of the sheets is named incorrectly. Please keep the sheets named "sendEmail" and "createDraft", and restart the add-on.');
}
}
Это потому, что теперь есть несколько пользователей, поэтому SpreadsheetApp.getActiveSheet () не будет работать, поскольку может быть конфликтующий «активный»листы?Но я думал, что код все равно будет работать независимо для каждого пользователя ...
Любая помощь будет оценена!Спасибо.