Google apps script 在时钟事件触发器中,forumla字段未定义

Google apps script 在时钟事件触发器中,forumla字段未定义,google-apps-script,Google Apps Script,我有一个由时钟事件调用的触发器函数。我正在使用range.getValues()从电子表格中读取值。我没有在结果数据数组中接收公式结果值,而是在有公式的地方看到未定义 如何获得要在此环境中执行的公式 这里有一个例子。此函数每小时调用一次。它应该等到股价超过15.01美元。相反,它只是在第一个小时给我发电子邮件,告诉我价格是“未定义的” /* 在指定的一个或多个时间运行脚本: 从脚本编辑器中,选择资源>当前脚本的触发器。你 查看一个面板,其中显示消息No triggers setup(未设置触发器

我有一个由时钟事件调用的触发器函数。我正在使用range.getValues()从电子表格中读取值。我没有在结果数据数组中接收公式结果值,而是在有公式的地方看到未定义

如何获得要在此环境中执行的公式

这里有一个例子。此函数每小时调用一次。它应该等到股价超过15.01美元。相反,它只是在第一个小时给我发电子邮件,告诉我价格是“未定义的”

/*
在指定的一个或多个时间运行脚本:
从脚本编辑器中,选择资源>当前脚本的触发器。你
查看一个面板,其中显示消息No triggers setup(未设置触发器)。单击此处立即添加一个。
单击表示未设置触发器的链接。单击此处立即添加一个。
在“运行”下,选择要按计划执行的功能。
在事件下,选择时间驱动。
在出现的第一个下拉列表中,选择小时计时器
*/
函数onHour(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var s=ss.getSheetByName(“onHour”);
如果(s==null){
s=不锈钢插入页(“小时”,1);
s、 附录行([“事件”、“已处理”、“电子邮件”、“主题”、“正文]);
}
//以下是工作表中的列标题
var EVENT=0;//第一行(A2)的公式为:=F2>15.01…单元格F2为:=GoogleFinance(G2;“价格”)…G2=PBI
var PROCESSED=1;//这是空的(直到以后)
var EMAIL=2;//我的电子邮件
var SUBJECT=3;//电子邮件主题
var BODY=4;//具有公式:=F2…通过电子邮件发送价格(但是,电子邮件BODY=“未定义”)
var range=s.getRange(“A2:D”);//获取上面的所有内容(保持D范围的开放性工作正常)
var values=range.getValues();
对于(var rowIndex=0;rowIndex
更改:

var ss = SpreadsheetApp.getActiveSpreadsheet();
致:

“添加触发器”可能需要一条消息——建议人们使用openById而不是getActiveSpreadsheet将s.getRange(“A2:D”)更改为s.getRange(“A2:E”)


getValue按预期返回计算后的所有公式。我的范围不够大。

我不确定是否理解您的问题。你能用更多的词和一个例子来解释吗?也许哈普西用同样的结果对它进行了测试。非常聪明。。我想你担心我没有得到正确的数据表。我注意到代码能够更新正确的电子表格。代码将把真值放入PROCESSED列中。因为它getActiveSpreadsheet()在触发器事件环境中工作,所以我更愿意保留它;通过这种方式,代码是可移植的,无需更改电子表格id。但我不认为这是一个可能的突破点。谢谢你的建议。很有趣。听起来你所有的电子表格都有计时表。很高兴看到你解决了。目前为止只有一个。但这是非常通用的,因此它应该能够报告任何变化的公式结果。股票是我的第一份申请。到目前为止,我将更改一件事,处理的应该是时间戳,而不是布尔值。
var ss = SpreadsheetApp.getActiveSpreadsheet();
var ss = SpreadsheetApp.openById("spreadsheet id");