在触发函数onEdit或onChange中调用以下代码后,它们将无法正常工作:
var selection = sheet.getSelection();
var ranges = selection.getActiveRangeList().getRanges();
选择多个范围(请参见屏幕截图)时,变量
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(如果您不偷懒,请投票以增加其优先级;-)