How can I use a form with four getRange arguments using SpreadSheetApp.openById ()?

var MasterSheet = SpreadsheetApp.openById("----------------");
var count = SpreadsheetApp.getActiveSheet().getRange(2, 3, 6, 4).getNumColumns();
var count = MasterSheet.getRange("C2:F7").getNumColumns();
var count = MasterSheet.getRange(2, 3, 6, 4).getNumColumns();

Lines 2 and 3 work fine, but line 4 gives the error "Cannot find the method getRange(number,number,number,number)." It seems to be getRange(number,..)available only for Active Sheet, not for openById.

This is mistake? Does anyone know the correct way to use this notation with SpreadsheetApp.openById()?

+3
source share
3 answers

Since you use openByID when you run the script trigger, there will be no active sheet. However, you are trying to get Range from ActiveSheet, i.e. GetRange of undefined. Either you first make the sheet active and then use getActiveSheet or you can use

SpreadsheetApp.getSheets[0].getRange(...); //index may vary
//or 
SpreadsheetApp.getSheetByName('sheetName').getRange(...)
+6
source

Range Spreadsheet Sheet One, 3 4, 1- .

, getSheets() [0], , getSheetByName then getRange ( Sheet). , , , . getRange (int, int, int, int).

+5

you always need to select a sheet and then use getRange

var count = MasterSheet.getRange("C2:F7").getNumColumns();
var count = MasterSheet.getRange(2, 3, 6, 4).getNumColumns();

here you skip getActiveSheet()orgetSheetByName('sheetName')

0
source

All Articles