我一直无法让我的脚本适用于我的投资组合电子表格。他们工作正常到5月初,从那以后我一直无法让他们工作。我想要做的是将我的投资组合的表现每天存储到一张单独的表格中。该脚本应该是找到下一个空行并将当前日期放在第一列中,将值放在第二列中。它正在做的是每次运行脚本时覆盖行。
这是我的剧本:
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 :(得分:0)
同时添加+1。或者之前添加flush功能。该脚本比添加的行更快。
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();