我的脚本每天都会存储Google电子表格数据

时间:2015-08-30 00:26:48

标签: google-apps-script

我一直无法让我的脚本适用于我的投资组合电子表格。他们工作正常到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();


}

非常感谢任何帮助。

感谢

1 个答案:

答案 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();