Ключ должен идентифицировать активный диапазон и соответствующие значения строки и столбца. Затем, используя «B16» в качестве отправной точки для аута, вы просто добавляете количество строк и количество столбцов, рассчитанное по активному диапазону.
Выделите любой диапазон, запустите функцию, и содержимое диапазона будет скопировано на тот же лист с ячейкой «B16» в верхнем левом углу.
Очень просто изменить код для создания выходного диапазона и скопировать значения в другую электронную таблицу.
function so5666559701() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheetname = "56665597";
var sheet = ss.getSheetByName(sheetname);
var myrange = sheet.getActiveRange();
var myvalues = myrange.getValues();
//Logger.log("DEBUG: the active range = "+myrange.getA1Notation());
var myfirstRow = myrange.getRow();
var mylastRow = myrange.getLastRow();
var myfirstCol = myrange.getColumn();
var mylastCol = myrange.getLastColumn();
//Logger.log("DEBUG: details of the selectred range: row: first row="+myfirstRow+", first column="+myfirstCol+", last row="+mylastRow+" last column:"+mylastCol);
// target cell = B16 = row 16, column 2
var targetrange = sheet.getRange(16,2,mylastRow-myfirstRow+1,mylastCol-myfirstCol+1);
//Logger.log("DEBUG: the target range = "+targetrange.getA1Notation());
targetrange.setValues(myvalues);
}