Как скопировать ярость строк в листах Google в соответствии с диапазоном, упомянутым в sheet1 - PullRequest
0 голосов
/ 14 февраля 2020

В листе 1 есть 2 столбца.

в первом столбце есть номер 6, а во втором столбце есть номер 20.

Это означает, что все данные в листе 2 из строки 6 до 20 должен быть скопирован в Лист 3.

Так что в будущем, если мы изменим число в листе 1, данные должны перетекать в соответствии с этими числами

Может ли кто-нибудь помочь мне достичь этого.

1 Ответ

0 голосов
/ 14 февраля 2020

Apps Script содержит метод copyTo , документация содержит образец:

// The code below copies the first 5 columns over to the 6th column.
var sheet = SpreadsheetApp.getActiveSheet();
var rangeToCopy = sheet.getRange(1, 1, sheet.getMaxRows(), 5);
rangeToCopy.copyTo(sheet.getRange(1, 6));

Вы можете адаптировать этот образец к вашему вопросу, но выполнив две модификации:

  1. Вместо того, чтобы копировать диапазон в диапазон на одном и том же листе - задайте два разных листа и скопируйте его с одного на другой
  2. При определении диапазона с помощью метода getRange (строка, столбец , numRows, numColumns) вместо присвоения параметрам статических чисел c, динамически извлекайте значения из таблицы.

Пример:

function myFunction() {
  var spreadsheet = SpreadsheetApp.getActive();
  var sheet1 = spreadsheet.getSheetByName("Sheet1");
  var sheet2 = spreadsheet.getSheetByName("Sheet2");
  var sheet3 = spreadsheet.getSheetByName("Sheet3");
  //adapt the ranges to the real cells contianing the row information
  var startRow = sheet1.getRange("A1").getValue();
  var endRow = sheet1.getRange("B1").getValue();
  var rowNumber = endRow-startRow+1;
  var rangeToCopy = sheet2.getRange(startRow, 1, rowNumber, sheet2.getLastRow());
  rangeToCopy.copyTo(sheet3.getRange(startRow, 1));
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...