2016-09-22 130 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); 
}