Добавить новые данные на другие листы - PullRequest
1 голос
/ 29 мая 2020

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

function copysheet() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('A4:R330').activate();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Master5'), true);
  spreadsheet.getRange('B2').activate();
  spreadsheet.getLastRow()+1.activate()
  spreadsheet.getRange('CopySheet!A4:R330').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('CopySheet'), true);
  spreadsheet.getRange('4:330').activate();
  spreadsheet.getActiveRangeList().clear({contentsOnly: true, commentsOnly: true, skipFilteredRows: true});
};

1 Ответ

0 голосов
/ 29 мая 2020

spreadsheet.getLastRow()+1.activate() не является допустимым запросом

Только диапазон может быть активирован .

Если вы хотите активировать ячейку ниже последняя строка,

  • сначала нужно выбрать не только строку, но и столбец
  • второй в запросе типа x+y.activate() метод (в данном случае activate()) относится только к y. Чтобы применить метод к x и y, правильный синтаксис будет (x+y).activate().

Сводка:

Изменить

spreadsheet.getLastRow()+1.activate()

до

var sheet = spreadsheet.getSheetByName("Chose the name of the sheet from which you want to retrieve the last row");
var lastRow = sheet.getLastRow();
sheet.getRange(lastRow+1,1).activate();
...