2016-10-26 53 views
0

我有一列自動更新的行,我想每天覆制並保存它們。在行上循環並將它們複製到下一張紙上

我已經寫了下面的腳本:

function saveData() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheets()[0]; 
    var rowcount = sheet.getRange("A1:A").getValues(); 
    var sheetdef = ss.getSheets()[1]; 

    for(var i = 0; i < rowcount.length; i++){ 
    var weeknum = sheet.getRange('Feed!A1').getValue(); 
    var year = sheet.getRange('Feed!B1').getValue(); 
    var date = sheet.getRange('Feed!C1').getValue(); 
    var sessions = sheet.getRange('Feed!D1').getValue(); 
    sheetdef.appendRow([weeknum,year,date,sessions]); 
}} 

,但是你會看到它永遠不會停止運行,再加上它只是將數據從第一行復制。如果我能夠識別我的問題,我真的不知道如何解決它。

我認爲我的rowcount行如果有錯誤,因爲它也計算空白行。我還需要更新sheet.getRange公式,以便他們採取動態參數。

謝謝!

回答

0

隨着Vasim的幫助下,我來到了這一點:

// function to save data Tendance sessions 
function saveData() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheets()[0]; 
    var sheetdef = ss.getSheets()[1]; 
    lastRow = sheet.getLastRow(); 

    for (i = lastRow; i > 0; i--){ 
    var weeknum = sheet.getRange(i,1).getValue(); 
    var year = sheet.getRange(i,2).getValue(); 
    var date = sheet.getRange(i,3).getValue(); 
    var sessions = sheet.getRange(i,4).getValue(); 
    sheetdef.appendRow([weeknum,year,date,sessions]); 
}} 
1

未經測試,但應該工作:

function saveData() { 
     var ss = SpreadsheetApp.getActiveSpreadsheet(); 
     var sheet = ss.getSheets()[0]; 
     //var rowcount = sheet.getRange("A1:A").getValues(); 
    var Avals = ss.getRange("A1:A").getValues(); 
    var rowcount = Avals.filter(String).length; //This will take the last non blank cell from A column 
     var sheetdef = ss.getSheets()[1]; 

//I suggest you define Feed sheet as well 
var feedsheet = ss.getSheetsByName("Feed") 

     for(var i = 0; i < rowcount.length; i++){ 
     var weeknum = feedsheet(i,1).getValue(); //<- ith row and first/second column 
     var year = feedsheet.getRange(i,2).getValue(); 
     var date = feedsheet.getRange(i,3).getValue(); 
     var sessions = feedsheet.getRange(i,4).getValue(); 
     sheetdef.appendRow([weeknum,year,date,sessions]); 
    }} 
+0

得到了以下錯誤'類型錯誤:表是不是一個函數,它是對象。 (第18行,文件「代碼」)'在線''var weeknum = feedsheet(i,1).getValue();' –

+0

編輯:添加'.getRange'到'feedsheet'來選擇適當的範圍。 – Vasim

相關問題