Google Apps Script активная яейчка getActiveRange

Подскажите, пожалуйста, в чём может быть проблема — при обращении к книге по URL или ID не отрабатывает функция getActiveRange().

При установке в любую ячейку в варианте с URL или ID всегда позиция 1,1.

При обращении через getActiveSpreadsheet()getActiveRange показывает правильно.

Мой код:

function myFunction() {

  var ss1 = SpreadsheetApp.getActiveSpreadsheet();
  var sheet1 = ss1.getSheetByName ("111");

  const ss2 = SpreadsheetApp.openById("1XmeCyPbI____i_______Hes");
  const sheet2 = ss2.getSheetByName("111");


  var range1 = sheet1.getActiveRange();
  var range2 = sheet2.getActiveRange();

  var col1 = range1.getColumn ();
  var row1 = range1.getRow ();

  var col2 = range2.getColumn ();
  var row2 = range2.getRow ();

  Logger.log (col1);
  Logger.log (row1);

  Logger.log (col2);
  Logger.log (row2);
}

Ответы (1 шт):

Автор решения: Prianichkin Sergey

Все дело в контексте. Используя getActiveSpreadsheet() вы получаете ссылку на текущую таблицу. И все функции будут использоваться в контексте текущей таблицы.

Functions that are run in the context of a spreadsheet can get a reference to the corresponding Spreadsheet object by calling this function.

Используя функции open(file) , openById(id) и openByUrl(url) вы получаете ссылку на новую открытую таблицу на сервере.

Note that the spreadsheet doesn't physically open on the client side. It opens on the server only (for modification by the script).

→ Ссылка