Вызов метода copyValuesToRange дважды - PullRequest
0 голосов
/ 02 марта 2012

Я хочу скопировать некоторые столбцы на другой лист. Когда я дважды вызываю метод copyValuesToRange, один работает, а другой нет.

    function myFunction() {
  var s = SpreadsheetApp.getActiveSpreadsheet();
  var target = SpreadsheetApp.openById("f3y53y54y45h45jh454");

  var target_sheet = target.getSheetByName("Sheet2");
  var sheet = s.getSheetByName("Sheet1");

  var sheet_last_row = sheet.getLastRow() + 1;

  var source_range = sheet.getRange("B1:H"+sheet_last_row);
  var source_range2 = sheet.getRange("K1:P"+sheet_last_row);

  var sWidth=source_range.getWidth() + 1;
  var sHeight=source_range.getHeight() + 1;

  var sWidth2=source_range2.getWidth() + 1;
  var sHeight2=source_range2.getHeight() + 1;

var last_row=target_sheet.getLastRow();

source_range.copyValuesToRange(target_sheet , 1, sWidth, last_row + 1, last_row + sHeight );
source_range2.copyValuesToRange(target_sheet , 8, sWidth2, last_row + 1, last_row + sHeight2 );

}

Как я могу решить эту проблему или есть другое решение для копирования ячеек на другой лист.

1 Ответ

1 голос
/ 06 марта 2012

Сдвиньте ширину второго диапазона от начальной точки до (конечная точка первого диапазона + 1) на sWidth2, так как это должен быть номер столбца правой границы целевого диапазона:

source_range2.copyValuesToRange(target_sheet , sWidth1+1, sWidth1+1+sWidth2, last_row + 1, last_row + sHeight2 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...