В этой ситуации мы можем сказать, что диапазон переменных на самом деле является двумерным массивом данных из ошибки, поэтому нет метода getLastRow()
.Однако существует range.length
.
var range = mainList.getRange(1, 1, 50, 5).getValues();
var numRows = range.getLastRow()-1;
Трудно увидеть ценность вашего второго примера, так как мы не можем сказать, откуда появился mainList.Взгляните на mcve
Если mainList является электронной таблицей, тогда мы можем перейти к документации по электронной таблице здесь и в примере здесь мы видимчто мы можем определить диапазон в A1Notation, указав имя листа (иногда называемое вкладкой) следующим образом:
var ss = SpreadsheetApp.getActiveSpreadsheet();
var range = ss.getRange("Invoices!A1:D4");
Лично мне обычно нравится тратить время на то, чтобы сделать что-то вроде этого:
var spreadsheet = SpreadsheetApp.getActive(); // or SpreadsheetApp.openById('ssid'); I Google Drive the ids are the primary key to locating files not names. And you can get the id of a spreadsheet right of of the url whenever you open it up.
var sheet = spreadsheet.getSheetByName('sheetname');
var range = sheet.getRange(1,1,50,5);
var valuesArray = range.getValues();
Затем вы можете просмотреть массив значений, как показано ниже:
for(var i=0;i<valuesArray.length;i++){
for(var j=0;j<valuesArray[i].length;j++){
var cellvalue=valuesArray[i][j];
}
}
Надеюсь, это поможет.Если вы уже знали об этом, я прошу прощения за то, что потратил ваше время.