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

问题描述

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

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")']);
}

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

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

感谢您的任何提示评论

解决方法

从您的工作表中,我可以看到每列上的价格是正确的,但价格是最后一次更改。因此,如果昨天是 2 欧元,而今天是 4 欧元,那么所有列都是 4 欧元。

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

要从单元格中获取值,您可以使用 getRange(a1Notation) 获取单元格,然后使用 getValue() 获取结果。

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