6

我刚刚发现了 Google App Scripts,但我已经被一些东西难住了......

我正在尝试为查找某些历史股票价格的 Google 电子表格编写脚本。我发现 Google App Scripts 中的 FinanceApp 服务已被弃用,并且似乎被 Google Spreadsheets 中的 GOOGLEFINANCE() 函数所取代。但是,当我只需要一个单元格时,它会返回一个数组,并且该数组正在破坏工作。

所以我想编写一个简短的脚本来调用 GOOGLEFINANCE() 电子表格函数,并从 GOOGLEFINANCE() 返回的数组中找到我需要的一条信息。但是,我找不到在脚本中访问电子表格函数(SUM、VLOOKUP、GOOGLEFINANCE 等)的方法。

有没有办法在脚本中访问这些函数?或者,是否有一项新服务可以取代已弃用的 FinanceApp 服务?

非常感谢您的帮助!

4

4 回答 4

1

你可以试试这个:

var trick = SpreadsheetApp.getActiveSheet().getRange('D2').setValue('=GOOGLEFINANCE("GOOG")').getValue();
于 2019-10-06T15:40:30.477 回答
0

Google Apps 脚本不支持本机电子表格函数。

您最终可以通过读取您在其中编写公式的单元格的值(在写入和读取中使用脚本)来使用有点麻烦的解决方法,但这将不太实用和/或快速。

于 2014-10-10T10:57:13.983 回答
-1

有一种可能的方法,使用 .setFormula()。此函数的行为类似于 .setValue() 并且可以通过以下方式使用:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var mySheet = ss.getSheets()[0]

//Code Below selects the first cell in range column A and B
var thisCell = mySheet.getRange('A:B').getCell(1,1); 

thisCell.setFormula('=SUM(A2:A4)');

您在此函数中编写的所有公式都被视为字符串,在 .setFormula() 输入中必须包含 ' 或 "。

于 2018-05-25T20:47:38.340 回答
-1

您可以尝试结合 GOOGLEFINANCE 的 INDEX 功能-

以供参考,

=GOOGLEFINANCE("MSFT", "PRICE", "01/01/21")

返回数组:

    Date    Close
    1/4/2021    217.69

可以添加 INDEX 函数以使用数组的行、列坐标从数组中挑选特定元素。

=INDEX(GOOGLEFINANCE("MSFT", "PRICE", "01/01/21"),2,2)

这仅返回第 2 行第 2 列中的数据 - 217.69

于 2021-02-03T02:04:30.147 回答