2015-08-30 17 views
0

我一直無法讓我的腳本爲我的投資組合電子表格工作。他們工作得很好,直到五月初,我一直無法讓他們工作。我想要做的是每天將我的投資組合的表現存儲到一張單獨的表格中。該腳本應該找到下一個空行,並將當前日期放在第一列中,並將值放在第二列中。它每次腳本運行時都會覆蓋該行。問題與我的腳本每天存儲Google電子表格數據

這裏是我的腳本:

function storePerf() { 

    SpreadsheetApp.flush(); 

    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    SpreadsheetApp.setActiveSheet(ss.getSheets()["0"]); 
    var source = ss.getRange ("Performance!G28"); 
    var destSheet = ss.getSheetByName("Performance Historical"); 
    var numRows = source.getNumRows(); 
    var numColumns = source.getNumColumns(); 
    var nextColumn = numColumns +1; 

    // Determine the first empty row to paste to. 
    var destRange = destSheet.getRange(destSheet.getLastRow()+1,2); 

    source.copyTo (destRange, {contentsOnly: true}); 

    // Print date in the cell to the right of the latest price 
    destSheet.getRange(destSheet.getLastRow(),1).setValue(new Date()); 


    SpreadsheetApp.flush(); 


} 

任何幫助將非常感激。

謝謝

回答

0

另外添加+1。或者之前添加刷新功能。該腳本比添加的行快。 ());

SpreadshertApp.flush() destSheet.getRange(destSheet.getLastRow(),1).setValue(new Date());

但隨後Isuggest您使用appendRow,使人們更方便:

var source = ss.getRange ("Performance!G28"); 
var destSheet =  ss.getSheetByName("Performance Historical"); 


//make a new row 

var newRow = [source.getValue(), new Date()] 

destSheet.appendRow([newRow]); 
SpreadsheetApp.flush(); 
+0

感謝您的幫助,但我仍然有問題。我已經嘗試了你的建議,但我只是在左側單元格中打印日期,沒有右側單元格中的數據。它正在附加一個新行,以便工作。我的一個評論中還有一個錯字。我希望左邊的日期(A列)和右邊的源數據(B列),我也嘗試添加像你一樣的刷新功能,但我得到了相同的結果。我還應該補充,當我像'var newRow'函數一樣格式化時,我得到了這個[Ljava.lang.Object; @ 6d6b7b87。我用()替換了[]的,並且工作正常。 – madman012

+0

你介意分享你的工作表/腳本還是它的副本? –

+0

我明白了,謝謝! – madman012

相關問題