Google App Script для добавления диапазона данных в Google Sheets - PullRequest
0 голосов
/ 30 января 2020

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

function saveToRecords() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var archive = ss.getSheetByName("Archive");
    var source = ss.getRange('Work!A10:R');
    var lastRow = archive.getLastRow();
    source.copyTo(ss.getRange('Archive!A1:R1'), {contentsOnly: true});
}

Я следил за этим вопросом для руководства , но когда я пытаюсь реализовать решение, я продолжаю получать ошибку несоответствующего диапазона.

Ответы [ 2 ]

1 голос
/ 30 января 2020
function saveToRecords() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var archive = ss.getSheetByName("Archive");
  var work = ss.getSheetByName('Work');
  var source = work.getRange(10,1,work.getLastRow()-9,18);
  source.copyTo(archive.getRange(archive.getLastRow()+1,1));
}
0 голосов
/ 30 января 2020

В итоге получилось что-то вроде этого

function saveToRecords() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Work'), true);
  spreadsheet.getRange('A10:R').activate();
  var source_sheet = spreadsheet.getSheetByName("Work");
  var target_sheet = spreadsheet.getSheetByName("Archive");
  var source_range = source_sheet.getActiveRange();
  var last_row = target_sheet.getLastRow();
  var values = source_range.getValues();
  target_sheet.getRange(last_row + 1, 1, values.length, values[0].length).setValues(values);
  spreadsheet.getRange('A2').activate();
}

Это добавит мой диапазон A10: R и вставит значения в первую доступную строку в моем листе архива

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