Google Apps Script: вызов функции из меню с диапазоном электронной таблицы в качестве параметра
У меня есть функция, которая принимает диапазон электронной таблицы в качестве параметра, а затем добавляет дату в той же строке, что и данный диапазон.
function autoDate(cell) {
var currentDate = new Date();
var currentMonth = currentDate.getMonth() + 1;
var currentDateStr = new String();
currentDateStr = currentDate.getDate() + "/" + currentMonth;
var sheet = SpreadsheetApp.getActiveSheet();
if (cell.getValue() == ""){
var activeRowInt = cell.getRow();
var dateCell = sheet.getRange(activeRowInt,3); //3 is my date column
dateCell.setValue(currentDateStr);
}
}
У меня есть меню, где я запускаю отдельную функцию, которая вызывает autoDate () с активной ячейкой в качестве параметра (поскольку система меню не позволяет вызывать функции с параметрами)
function autoDateMenu(){
var sheet = SpreadsheetApp.getActiveSheet();
var activeCell = sheet.getActiveCell();
autoDate(activeCell);
}
Если я запускаю autoDateMenu () из редактора сценариев, он работает нормально. Если я запускаю autoDateMenu (), выбирая его из меню электронной таблицы, я получаю следующую ошибку:
TypeError: Невозможно вызвать метод "getValue" из неопределенного. (строка 64, файл "Код")
Строка 64 относится к этой строке:
if (cell.getValue() == ""){
Вот код, который я написал для меню:
function onOpen() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var entries = [{
name : "Read Data",
functionName : "readRows"
},{
name : "Set Date",
functionName : "autoDateMenu"
}];
spreadsheet.addMenu("Script Center", entries);
}
Спасибо за ответ :)