Я пытаюсь создать диалоговое окно для файла таблицы Google всякий раз, когда редактируется определенный столбец. Приглашение открывается всякий раз, когда я запускаю его вручную, но по какой-то причине, когда я пытаюсь запустить его в функции onEdit, он перестает работать. Как вы можете видеть из кода и журналов ниже, ошибка, похоже, возникает в переменной результата, поскольку именно тогда регистратор перестает выводить данные. Любая помощь будет принята с благодарностью, заранее спасибо.
КОД:
function onEdit(e){
Logger.log("onEdit");
var spreadSheet = e.source;
var sheet = spreadSheet.getActiveSheet();
var sheetName = sheet.getName();
if(sheetName =='Sheet1' && e.range.columnStart == 23){
Logger.log("should be running email prompt");
emailPrompt();
}
}
function emailPrompt() {
Logger.log("Reaching email prompt");
var ui = SpreadsheetApp.getUi();
Logger.log("ui");
var result = ui.prompt(
'Email Template',
'Please edit the email:',
ui.ButtonSet.OK_CANCEL);
Logger.log("result");
// Process the user's response.
var button = result.getSelectedButton();
var text = result.getResponseText();
if (button == ui.Button.OK) {
// User clicked "OK".
//Insert Code to select email
ui.alert('Your name is ' + text + '.');
} else if (button == ui.Button.CANCEL) {
// User clicked "Cancel".
ui.alert('Email cancelled');
} else if (button == ui.Button.CLOSE) {
// User clicked X in the title bar.
ui.alert('Email cancelled.');
}
}
ЖУРНАЛЫ:
[20-07-10 15:21:09:472 CDT] onEdit
[20-07-10 15:21:11:198 CDT] should be running email prompt
[20-07-10 15:21:11:199 CDT] Reaching email prompt
[20-07-10 15:21:11:201 CDT] ui
РЕДАКТИРОВАТЬ: Настройка устанавливаемого триггера
введите описание изображения здесь
РЕДАКТИРОВАТЬ 2: Настройка устанавливаемого триггера сработала, так что большое спасибо! Единственная проблема, с которой я сейчас сталкиваюсь, заключается в том, что этот лист предназначен для компании, в которой я работаю, и они хотят владеть устанавливаемым триггером. Однако похоже, что подсказка отображается только для человека, которому принадлежит триггер. Если кто-то еще пытается отредактировать функцию и открыть приглашение. Появляется следующая ошибка: You do not have permission to call prompt at emailPrompt(onEdit:54) at onEdit_sendEmail(onEdit:42) –
Итак, теперь мне нужно выяснить, как сделать так, чтобы этот триггер работал для всех, у кого есть доступ к электронной таблице. Спасибо!