1

このスクリプトをGoogleスプレッドシートで使用して、新しい行を追加しています。

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 に答える