如何从On Change事件中获取Active Sheet?

时间:2014-05-08 15:53:03

标签: google-apps-script google-sheets google-apps

在此网站上搜索“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事件的重点是什么?

1 个答案:

答案 0 :(得分:0)

我认为问题是this bug,现在已经修复了。