2016-09-22 2 views
0

Я думаю, что у меня есть фундаментальное непонимание того, как работают getRange или setValue.Копирование и вставка диапазона с помощью скрипта Google Apps

Я хочу скопировать последнюю строку данных, столбцы 1-5 и вставить их в другую таблицу в первой строке, столбцы 1-5.

Когда я запускаю свой скрипт, он устанавливает значение последней строки, первого столбца в первую строку и во всех 5 столбцах.

Итак, если у меня есть Пн, Вт, Ср, Тюр, Пт в исходных данных, то что вставляется во вторую электронную таблицу, я получаю Mon, Mon, Mon, Mon, Mon.

Благодаря

function myFunction() { 
// Last Row 
    var ss = SpreadsheetApp.getActiveSheet(); 
    var lastRow = ss.getLastRow() 

// Assign last row from source data to variable 
    var lastRowSourceData = ss.getRange(lastRow,1,1,5).getValue() 


// Paste form values into master log 
    var makeEntryHere = SpreadsheetApp.openById('1kBfBHnNFyqC-ACyHs6Q09IYj2TzF3RWBwp-yvYtxd34').getSheetByName('sheet1').getRange(1,1,1,5); 
    makeEntryHere.setValue(lastRowSourceData); 
} 

ответ

1

Ваш код просто отлично, правильно .getValue() к .getValues() и .setValue() к .setValues() соответственно, и она должна работать:

function myFunction() { 
// Last Row 
var ss = SpreadsheetApp.getActiveSheet(); 
var lastRow = ss.getLastRow(); 

// Assign last row from source data to variable 
var lastRowSourceData = ss.getRange(lastRow,1,1,5).getValues(); 


// Paste form values into master log 
var makeEntryHere = SpreadsheetApp.openById('1kBfBHnNFyqCACyHs6Q09IYj2TzF3RWBwp-yvYtxd34').getSheetByName('sheet1').getRange(1,1,1,5); 
makeEntryHere.setValues(lastRowSourceData); 
}