I'm trying to call an external API for every cell that gets pasted into in my spreadsheet using either an onEdit on onChange trigger, neither seem to work completely when the selected cells are non-contiguous. No matter whether I use
SpreadsheetApp.getSelection().getActiveRangeList().getRanges()
or
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getActiveRangeList().getRanges()
it only ever returns a single range that is the first-selected range. When I run the function directly, it works fine, but when triggered, it does not. I'm guessing this is either a bug or is just plain ol' impossible, but I'm hoping I'm just missing something.
Console log:
function updateCategoryOnChange(e) {
var selection = SpreadsheetApp.getSelection()
var rangeList = selection.getActiveRangeList()
//var ss=SpreadsheetApp.getActiveSpreadsheet()
//var sheet=ss.getActiveSheet()
//var rangeList=sheet.getActiveRangeList()
var ranges=rangeList.getRanges()
Logger.log("ranges length "+ranges.length);
for (var i=0; i<ranges.length; i++) {
Logger.log('x '+ranges[i].getA1Notation()+' '+ranges[i].getNumRows()+' rows, '+ranges[i].getNumColumns()+' columns')
}
return;

