为什么我的 GOOGLEFINANCE 公式的结果总是一样的?

Why is the result of my GOOGLEFINANCE formula always the same?

我用 Apps Script 为我的 Google Sheet 编写了一个脚本,以便记录给定时间的股票价格。该脚本由时间驱动的触发器每小时执行一次。

function logStockPrices() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var writeSheet = ss.getSheetByName('Stock History');
  var timestamp = Utilities.formatDate(new Date(), "GMT+1", "dd.MM.yyyy hh:mm:ss");
  writeSheet.appendRow([timestamp, '=googlefinance("NASDAQ:AAPL")', '=googlefinance("NYSE:SPCE")', '=googlefinance("FRA:D7G")', '=googlefinance("FRA:11L1")', '=googlefinance("FRA:LHA")', '=googlefinance("FRA:AIR")', '=googlefinance("FRA:10E")']);
}

但记录的价格始终相同,即使价格在变化。 但是时间戳是正确的。

这是电子表格的 link:https://docs.google.com/spreadsheets/d/11empPIZzVOc1tc7toTU6YVbeygVfaR_izW60QNYTjwI/edit?usp=sharing

感谢任何提示和评论。

从您的 sheet 我可以看到每一列的价格都是正确的,但最后一次价格发生了变化。因此,如果昨天是 2 欧元,今天是 4 欧元,那么所有列都是 4 欧元。

我建议您获取另一个单元格的当前值,然后复制该值,而不是公式,并将复制的值附加到最后一行。

要从单元格中获取值,您可以使用 getRange(a1Notation) and then getting the result with getValue() 获取单元格。

为您要跟踪的每个财务执行此操作,然后将创建一个包含所有更改的日志。