在Google Spreadsheet上插入行并保留公式

时间:2014-01-30 18:09:02

标签: google-apps-script google-sheets

我正在制作一张每天更新的电子表格。为简单起见,假设我每隔中午生成一个数字,晚上电子表格应该将数字复制到日志列中,并显示该列的所有存储值的总和(实际上有几列,它们的数量可能是在未来成长)。使用我当前的实现,总和公式会自动更新,因此只保留以前可用的值。我希望我能阻止这种行为。

示例:

电子表格显示:

Total     1
Today     2
History 
1/29/2014 1

明天,在我更新它之前,它应该是:

Total     3
Today     
History 
1/30/2014 2
1/29/2014 1

我在“总计”行中插入的公式是:

=sum(B4:B)

基本上,我为脚本编写的代码包含:

//Inserts a new line to compose history log:
sheet.insertRowsAfter(firstHystoryLine-1, 1);

运行脚本后,公式将更新为

=sum(B5:B)

因此我的问题。

3 个答案:

答案 0 :(得分:1)

或者,您可以添加代码

sheet.getRange("B1").setFormula("=sum(b4:b)")

这将正确重置您的公式。

答案 1 :(得分:0)

尝试总和(b3:b)。然后插入一行不应影响公式。

答案 2 :(得分:0)

将您的字段设置为= Sum(B $ 4)。使用美元符号应该可以防止它滑动。如果你要添加列,你也想做= Sum($ B $ 4)。