【问题标题】:How do I get the Active Sheet from an On Change event?如何从 On Change 事件中获取 Active Sheet?
【发布时间】: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


【解决方案1】:

我相信问题出在this bug,现在已修复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-30
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-01
    相关资源
    最近更新 更多