例子:
当您安装 on-edit 触发器时,您的函数会传递开始和结束行和列。但不是编辑了哪个工作表。
自然,我的第一个想法是抓住 SpreadsheetApp().getActiveSheet() 但这不起作用。
编辑示例电子表格中的任何单元格。安装的编辑触发器将向 Sheet1 填充值,告诉您您编辑了什么。现在切换到工作表 2 或工作表 3 并编辑一些内容。它总是报告 Sheet1 已被编辑。
触发器的代码:
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)]]);
}
如何编辑工作表?这是我的错误还是这是一个错误?还是他们在事件处理方式上的不足?