我刚刚发现了谷歌应用程序脚本,我已经对某些东西感到难过...
我正在尝试为Google电子表格编写一个脚本,以查找某些历史股票价格。我发现Google App Scripts中的FinanceApp服务已被弃用,并且似乎被Google Spreadsheets中的GOOGLEFINANCE()函数取代。然而,当我只需要一个单元格时,它返回一个数组,并且数组正在破坏工作。
所以我想编写一个调用GOOGLEFINANCE()电子表格函数的简短脚本,并从GOOGLEFINANCE()返回的数组中找到我需要的1条信息。但是,我找不到在脚本中访问电子表格函数(SUM,VLOOKUP,GOOGLEFINANCE等)的方法。
有没有办法在脚本中访问这些功能?或者,是否有新服务取代了已弃用的FinanceApp服务?
非常感谢您的帮助!
答案 0 :(得分:1)
Google Apps脚本不支持原生电子表格功能。
通过读取编写公式的单元格的值(在写入和读取时都使用脚本),最终可能会使用一些有点繁琐的解决方法,但这将不太实际和/或快速。
答案 1 :(得分:0)
有一种可能的方法,使用.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()输入中。
答案 2 :(得分:0)
您可以尝试以下方法:
var trick = SpreadsheetApp.getActiveSheet().getRange('D2').setValue('=GOOGLEFINANCE("GOOG")').getValue();
答案 3 :(得分:-1)
你可以试试INDEX函数结合GOOGLEFINANCE-
供参考,
=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 中的数据