1

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

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
sheet.insertRowAfter(1);

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

=A$2

变成

=A$3

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

我理解这种行为,电子表格希望所有公式都指向旧单元格 - 但它与我的总和相混淆(这些应该总是从 a$2:a$999 总结整个列(a1 是标题)。但那些得到更新然后总结 a$3:a$1000(等等),这样他们就完全错过了新行。

4

2 回答 2

4

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

于 2012-10-16T10:31:16.903 回答
-1

我最近在 Android 中做到了这一点。

service = new SpreadsheetService("Spreadsheet");
service.setProtocolVersion(SpreadsheetService.Versions.V3);
service.setUserCredentials("username", "password");

URL metafeedUrl = new URL("https://spreadsheets.google.com/feeds/spreadsheets/private/full");
feed = service.getFeed(metafeedUrl, SpreadsheetFeed.class);
List<SpreadsheetEntry> spreadsheets = feed.getEntries(); //List of Spreadsheet
worksheetFeed = service.getFeed(spreadsheets.get(0).getWorksheetFeedUrl(), WorksheetFeed.class); //Using the first spreadsheet from list
List<WorksheetEntry> worksheets = worksheetFeed.getEntries();
worksheet = worksheets.get(0);
URL listFeedUrl = worksheet.getListFeedUrl();

// Create a local representation of the new row.
ListEntry row = new ListEntry();
row.getCustomElements().setValueLocal("column_name", "value");
row = service.insert(listFeedUrl, row);

这对我来说很有用。希望它可以帮助你。

于 2012-10-16T05:23:28.130 回答