Пример:
https://spreadsheets.google.com/ccc?key=0Am8IA9FchrLbdHlkbWFMOWtZa1Y0RWpMNUV5Q3RMaVE&hl=en&authkey=CPXlr5UL
Когда вы устанавливаете триггер при редактировании, ваша функция проходит начальные и конечные строки и столбцы. Но не то, какой лист был отредактирован.
Естественно, моей первой мыслью было получить SpreadsheetApp (). GetActiveSheet (), но это не сработало.
Редактировать любую ячейку в электронной таблице примера. Установленный триггер при редактировании заполнит значения для Sheet1, сообщая вам, что вы редактировали. Теперь переключитесь на лист 2 или лист 3 и отредактируйте что-нибудь. Это всегда сообщает, что Лист1 был отредактирован.
Код триггера:
function my_on_edit(e) {
//the object passed in, e, doesn't know what sheet was edited. Really!
var ss = SpreadsheetApp.getActiveSpreadsheet();
var spreadsheetname = ss.getName();
var thesheet = ss.getActiveSheet();
var sheetname = thesheet.getName();
//Tell us what was edited, please.
ss.getSheetByName("Sheet1").getRange("A2:E2").setValues([[ spreadsheetname, sheetname, e.range.rowStart, e.range.columnStart, Utilities.jsonStringify(e)]]);
}
Как мне отредактировать лист? Это моя ошибка или это ошибка? Или недостаток в том, как они делают обработку событий?