如何从getActiveRangeList()触发函数获取多个活动范围?

时间:2018-10-25 08:54:23

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

在触发函数onEdit或onChange中调用以下代码后,它们将无法正常工作:

var selection = sheet.getSelection();
var ranges = selection.getActiveRangeList().getRanges();

enter image description here

选择多个范围(请参见屏幕截图)时,变量

var ranges 

仅包含范围H1:H15。范围J1:J15根本不在数组中。

一个有趣的事实是,当上述代码段在触发函数之外调用时,它们按预期方式工作,即它们检测到多个选定范围。

触发函数的完整代码:

function onEdit (e) {
  var sheet = e.source.getActiveSheet();
  var selection = sheet.getSelection();
  var ranges = selection.getActiveRangeList().getRanges();

  for (var i = 0; i < ranges.length; i++) {
      Logger.log('Active Ranges: ' + ranges[i].getA1Notation());
  }
}
// Active Ranges: H1:H15

编辑:有一个报告给Google的错误:https://issuetracker.google.com/issues/115931946(如果您不偷懒,请投票以增加其优先级;-)

0 个答案:

没有答案