在读取值之前刷新实时 Google 财务数据

Refresh live Google Finance data prior to reading value

我正在尝试将内容从一栏复制到另一栏。 源列包含基于公式的内容,例如 =GOOGLEFINANCE(SYMBOL,"PRICE") 每分钟更新一次。

我创建了每 5 分钟运行一次的触发器。但是在复制时它不会复制 sheet 中看到的最新值,而是从公式中复制初始值。假设初始库存值为 100,稍后变为 105。当函数运行时,我的脚本将 100 复制到目标范围。

...
var ss = SpreadsheetApp.getActive().getSheetByName("Sheet1");
ss.getRange(startRowRange).copyTo(ss.getRange(col), {contentsOnly:true});

如何读取 =GOOGLEFINANCE() 个单元格的当前显示值?

正如 @tehhowch 所建议的那样,flush 成功了。 调用它会在那个时间点应用所有未决的电子表格更改。

var ss = SpreadsheetApp.getActive().getSheetByName("Sheet1");
SpreadsheetApp.flush();
ss.getRange(startRowRange).copyTo(ss.getRange(col), {contentsOnly:true});

Read more about flush() here