问题描述
我使用 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() 获取结果。
为您要跟踪的每个财务执行此操作,然后将创建包含所有更改的日志。