Как скопировать большую часть данных в заданный диапазон? - PullRequest
0 голосов
/ 08 марта 2020

Здравствуйте, поэтому я пытаюсь получить значения из листа 'book', а затем скопировать его на лист 'Completed'. Это не дает никакой ошибки, но и не выполняет копирование. Он принимает форму значений, книга хранит ее в массиве данных, но не копирует их на лист «Завершено». Так что я думаю, что есть проблема с последним рядом.

var sheet = spreadsheet.getSheetByName('Book'); //source sheet
  var Datarange = sheet.getRange('Q:Q'); //range to check
  var Datavalue = (Datarange.getValues());
  var dest = spreadsheet.getSheetByName('Completed'); //destination sheet
  var data = [];
  var j =[];
  for (i=0; i<Datavalue.length;i++) {
    if ( Datavalue[i] == "Completed") {
      data.push.apply(data,sheet.getRange(i+1,1,1,24).getValues());
      j.push(i);
    }
  }
  dest.getRange(dest.getLastRow()+1,1,data.length,data[0].length).setValues(data); /// copy data to range

1 Ответ

2 голосов
/ 08 марта 2020

Примерно так:

function whoknowswhat() {
  var ss=SpreadsheetApp.getActive()
  var sh=ss.getSheetByName('Book');
  var rg=sh.getRange(1,17,sh.getLastRow(),1);
  var v=rg.getValues();
  var dest=ss.getSheetByName('Completed');
  var data=[];
  for (i=0; i<v.length;i++) {
    if (v[i][?]=="Completed") {//need another parameter for column
      data.push(v[i]);//v[i] is an entire row 
    }
  }
  dest.getRange(dest.getLastRow()+1,1,data.length,data[0].length).setValues(data);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...