【发布时间】:2014-05-08 15:53:03
【问题描述】:
在此站点上搜索“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 事件的意义何在?
【问题讨论】:
-
顺便说一句,我已经阅读了很多关于 SO 问题正确形成的内容,我想知道这个问题是否形成良好。
标签: google-apps-script google-sheets google-apps