2016-09-22 128 views
0

我想我对getRange或setValue的工作原理有一些基本的误解。使用Google Apps脚本复制和粘贴范围

我想复制最后一行数据,第1-5列,并将它们粘贴到第一行第1-5列中的另一个电子表格中。

当我运行我的脚本时,它将最后一行,第一列的值设置为第一行和所有5列。因此,如果我在源数据中包含星期一,星期二,星期三,星期四,星期五,那么粘贴到第二个电子表格中的内容我会得到星期一,星期一,星期一,星期一,星期一。

感谢

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); 
}