Google Script Copy Last Row, Все столбцы из - PullRequest
0 голосов
/ 14 декабря 2018

Две вкладки на листе с именем Master и Working.

"Основной" лист заполняется диапазоном импорта из отдельного листа Google, который заполняется отправкой jotform.= IMPORTRANGE ("1YIxcke-hskw2NyokxtnWoDO_69hz_K-CXfsIq0Z3yNM", "Sheet1! A: MO")

Мне нужно, когда новая отправка достигает "Master", запускается скрипт, чтобы скопировать новую строку в "Working" с помощью selectСтолбцы.

У меня есть два сценария в настоящее время.Версия с ручным копированием работает нормально, но работает только с активной ячейкой.Версия onEdit ничего не копирует при запуске.У меня есть чувство, что это связано с importrange, делающим «последний ряд» пустой строкой.

Это мой сценарий:

function onEdit(){
var ss = SpreadsheetApp.getActive();
var sheet = 
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Master");
var rowIdx = sheet.getActiveRange().getRowIndex();
var );
Logger.log(rowValues);
var destValues = [];
destValues.push(rowValues[0][0]);// copy data from col A to col A
destValues.push(rowValues[0][1]);// copy data from col B to col B
destValues.push(rowValues[0][2]);// copy data from col C to col C

destValues.push(rowValues[0][5]);// copy data from col F to col D
destValues.push(rowValues[0][6]);// copy data from col G to col E
destValues.push(rowValues[0][7]);// copy data from col H to col F
destValues.push(rowValues[0][8]);// copy data from col I to col G

destValues.push(rowValues[0][21]);// copy data from col V to col H

destValues.push(rowValues[0][23]);// copy data from col X to col I

var dest = 
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Working");

dest.getRange(dest.getLastRow()+1,1,1,destValues.length) 
.setValues([destValues]);
}

(мне пришлось разбить строку dest.getRange, чтобы она была отформатирована как код.)

Это копиямой лист, поделился: https://docs.google.com/spreadsheets/d/1FylLCocxDmKYISzjuFeSCSLUgE4kbBtkDPk-zI698JQ/edit?usp=sharing

1 Ответ

0 голосов
/ 14 декабря 2018

Я подозреваю, что код пытается записать в несуществующую строку.

Заменить

dest.getRange(dest.getLastRow()+1,1,1,destValues.length) 
   .setValues([destValues]);

на

dest.appendRow(destValues)

Функция "appendRow"выход на объект листа.https://developers.google.com/apps-script/reference/spreadsheet/sheet#appendRow(Object)

Ожидается массив значений.

Ожидает функция setValues, которую вы вызываете, и массив массивов.

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