如何在不影响现有公式的情况下向谷歌电子表格添加新行

JPS*_*JPS 1 google-sheets google-apps-script

我在谷歌电子表格中使用此脚本来添加新行:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
sheet.insertRowAfter(1);
Run Code Online (Sandbox Code Playgroud)

问题是引用行的任何公式都会更新,例如

=A$2
Run Code Online (Sandbox Code Playgroud)

变成

=A$3
Run Code Online (Sandbox Code Playgroud)

在行插入之后。有办法避免这种情况吗?
(通过更改论坛或脚本。)

我理解这种行为,电子表格希望保留所有指向旧单元格的公式 - 但这会扰乱我的总和(这些总和应该始终对 a$2:a$999 的整个列进行求和(a1 是标题)。但是这些会更新然后对 a$3:a$1000(依此类推)求和,这样他们就完全错过了新行。

And*_*den 5

您可以使用=SUM(INDIRECT("A2"):INDIRECT("A999"))这些值求和。电子表格不会触及这些地址,因为它们是字符串。