Reputation:
I have simple sheet with data and code:
function test() {
var SpreadSheet = SpreadsheetApp.getActiveSpreadsheet();
var Sheet = SpreadSheet.getSheets()[0];
var frozenRows = Sheet.getFrozenRows(); 2.0
var lastRow = Sheet.getLastRow(); // 3.0
var lastColumn = Sheet.getLastColumn(); // 3.0
var headerRange = Sheet.getRange(1, 1, frozenRows, 1); // A1:A2
var dataRange = Sheet.getRange(1 + frozenRows, 1, lastRow, lastColumn); // A3:C5
var Range = Sheet.getDataRange(); // A1:C3
I don't understand why I get return value A3:C5 and not A3:C3 from:
var dataRange = Sheet.getRange(1 + frozenRows, 1, lastRow, lastColumn);
Logger.log(dataRange.getA1Notation());
Thank you.
Upvotes: 1
Views: 67
Reputation: 26806
getRange(row, column, numRows, numColumns)
Thus, getRange(3, 1, 3, 3)
will result in a range that
A3
)A3:C:5
A3:C3
instead you need to query:
getRange(3, 1, 1, 3)
var startRow = (1 + frozenRows);
var rowLength = (lastRow - startRow + 1);
var startColumn = 1;
var columnLength = (lastColumn - startColumn + 1);
var dataRange = Sheet.getRange(startRow, startColumn, rowLength, columnLength);
Upvotes: 1