Насколько я понимаю, вы пробуете вызвать функцию
onEdit
из другой функции или из редактора.
Разбор ошибки
Ошибка
TypeError: Cannot read property 'range' of undefined (строка 3, файл se)
Означает, что в некотором файле
se
в
3й строке
есть некоторая переменная со значением
undefined
, свойство
range
которой прочитать невозможно. Тут все очевидно - у
undefined
нет свойств.
Если посмотреть на код, то становится ясно, что имя этой переменной
e
. И мы ее получаем в
системную функцию onEdit
. Это означает, что система
сама передает контекст в эту функцию.
ОК. Значит, чтобы протестировать эту функцию, нужно передать параметр
самостоятельно.
Например,
/**
* Тестирование триггера для события EDIT
*/
function runOnEdit() {
var source = SpreadsheetApp.getActive();
var range = source.getRangeByName('Sheet!!B26');
/**
* @type {GoogleAppsScript.Events.SheetsOnEdit}
*/
var e = {
authMode: ScriptApp.AuthMode.LIMITED,
oldValue: undefined, // ну или что хотите
range: range,
value: range.getValue(),
source: source,
triggerUid: 0,
user: Session.getActiveUser(),
};
onEdit(e);
}
/**
*
* @param {GoogleAppsScript.Events.SheetsOnEdit} e
*/
function onEdit(e) {
// Работает простой триггер
}
Проверьте - этот код будет работать точно так же, как если бы пользователь внес изменения в Таблице.