Скрипт Google Sheets для копирования и вставки в другой лист после последней записи - PullRequest
0 голосов
/ 11 февраля 2020

Я работаю над сценарием, который будет копировать определенный диапазон листа A и вставлять его в лист B после последней записи, я знаю, что это должно быть довольно легко, но почему-то код не работает, не могли бы вы посоветовать что я здесь делаю неправильно, он очистит содержимое ячейки, но частично скопирует данные с листа A на лист B

function Export2() {

     var ss = SpreadsheetApp.getActiveSpreadsheet()
      var database = SpreadsheetApp.openById("XXX");
     var source = ss.getSheetByName('Sheet1');
       var dataToCopy = source.getRange('B2:G10');
      var copyToSheet = database.getSheetByName("Sheet2");
      var lastRow = copyToSheet.getLastRow();
      for (var i = 1; i<6 ;i++){
        var Paste = copyToSheet.getRange(lastRow + 1,i).setValues(dataToCopy.getCell(1,i).getValues());
    }

    var Clean = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1').getRange('B2:G10');
                Clean.clear({contentsOnly:true});
    }

Ответы [ 2 ]

1 голос
/ 11 февраля 2020
function Export2() {
  var svA=SpreadsheetApp.getActive().getSheetByName('Sheet1').getRange(2,2,9,6).getValues()
  var dsh=SpreadsheetApp.openById('1AqQyqMQNnYvbFoU0HQ4WtjqkKtfxkj15Y6iXG6lCWkI').getSheetByName('Sheet2')
  dsh.getRange(dsh.getLastRow()+1,1,svA.length,svA[0].length).setValues(svA);
}
0 голосов
/ 11 февраля 2020
  • Вы хотите скопировать значения диапазона B2:G10 на Sheet1 в активной электронной таблице в последнюю строку Sheet2 в другой электронной таблице, используя скрипт Google Apps.
  • После значения были скопированы, вы хотите очистить ячейки диапазона B2:G10 на Sheet1 в активной электронной таблице.

Если мое понимание верно, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.

Точки модификации:

  • В вашем текущем скрипте копируются только значения "B2: F2" исходного листа. Поэтому в этом случае сначала извлекайте исходные значения из диапазона B2:G10 на Sheet1 в активной электронной таблице. Затем поместите значения в целевой диапазон.
  • Чтобы очистить диапазон B2:G10 от Sheet1 в активной электронной таблице, вы также можете использовать dataToCopy из var dataToCopy = source.getRange('B2:G10').

Модифицированный скрипт:

Когда ваш скрипт модифицируется, он выглядит следующим образом.

function Export2() {
  var ss = SpreadsheetApp.getActiveSpreadsheet()
  var database = SpreadsheetApp.openById("XXX");
  var source = ss.getSheetByName('Sheet1');
  var dataToCopy = source.getRange('B2:G10');
  var copyToSheet = database.getSheetByName("Sheet2");

  // I modified below script.
  var sourceValues = dataToCopy.getValues();
  var lastRow = copyToSheet.getLastRow();
  copyToSheet.getRange(lastRow + 1, 1, sourceValues.length, sourceValues[0].length).setValues(sourceValues);
  dataToCopy.clear({contentsOnly:true});
}

Если я неправильно понял ваш вопрос и это был не тот результат, который вы хотите, я приношу свои извинения .

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