在此网站上搜索“INSERT_ROW getActiveSheet”并找到一个匹配:Google Script: How can I run a script only when someone adds new rows。接受的答案显示了此代码:
function myFunction(e){
Logger.log(e.changeType);
if(e.changeType=='INSERT_ROW'){
// do Something
Browser.msgBox('New row(s) added');
}
}
哪个好。我遇到的问题是在代码的“//做某事”部分,我想要做的是获取活动工作表和最终的活动范围,以便我可以在用户插入新的时以编程方式向新行添加公式行。我试过了两个:
e.source.getActiveSheet().getName()
和
SpreadsheetApp.getActiveSheet().getName()
尝试获取活动工作表的名称,但它会不断返回电子表格中的第一个工作表和范围A1。
当我运行此代码时:
Browser.msgBox(Utilities.jsonStringify(e));
它不返回活动工作表,只返回authMode,changeType和用户属性,因为它在documentation中显示它。
但是,必须有办法找出已经改变的内容,否则onChange事件的重点是什么?