Google App Script: как копировать и вставлять данные с одного листа на другой? - PullRequest
0 голосов
/ 04 июля 2019

Я пытаюсь скопировать и вставить некоторые данные один за другим с одного листа на другой с помощью скрипта приложения Google. Дело в том, что мой скрипт не вставляет данные в правильную строку. Я хотел бы вставить первые данные в ячейку A2. Затем, когда я снова запускаю скрипт в ячейке A3 и т. Д. Но когда я запускаю скрипт, он вставляет данные в ячейку A266

function Agregation () {
var spreadsheet = SpreadsheetApp.getActive();
var ss = spreadsheet.getSheetByName('Données');
var ts = spreadsheet.getSheetByName('Classement');
var lr = ts.getLastRow();
Logger.log(lr);
ss.getRange('A2:E7').copyTo(ts.getRange('A0'+(lr+1)), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
};

1 Ответ

0 голосов
/ 04 июля 2019

Для целей документирования.

Код был хорош, но лист "Classement" не был пустым, так как имел непустую ячейку в 'A265', вызов ts.getLastRow(); возвращал 265После очистки листа и запуска кода он работал как положено.

Можно продвинуться вперед, позвонив ts.clear() до завершения копирования, чтобы убедиться, что лист пуст.

ОБНОВЛЕНИЕ

После тестирования обновите код следующим образом:

function Agregation() {
  var spreadsheet = SpreadsheetApp.getActive();
  var ss = spreadsheet.getSheetByName('Test données');
  var ts = spreadsheet.getSheetByName('Test script');
  var lr = ts.getLastRow();
  Logger.log(lr);
  ss.getRange('A2:E7').copyTo(ts.getRange('A'+(lr+1)), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);

  var toDelete = ts.getRange("A" + ts.getLastRow() - 3 + ":A" + ts.getLastRow()).getValues();
  for (var i = 0; i < 4; i++){
    if (toDelete[i][0] == ""){
      Logger.log(i);
      ts.deleteRow((ts.getLastRow() - 3) + i);
    }
  }
};

Добавляет первую строку, а затем проверяет следующие 3, чтобы увидеть, если это«», если это так, он удаляет строки, поэтому при следующем запуске не будет пробелов

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