前提・実現したいこと
スプレッドシートでピボットテーブルのデータ範囲を自動更新させるコードを書きました。
下記のサイトを参考にして作成したのですが、どうしてもエラーが出てしまいます。
解決方法についてお力をお貸し頂ければと思いますので、よろしくお願いいたします。
参考:https://sites.google.com/site/scriptsexamples/learn-by-example/google-sheets-api/pivot
発生している問題・エラーメッセージ
下記の部分でシートが定義されていませんとエラーが出てしまいます。
var sheets = Sheets.Spreadsheets.get(ss.getId(), {fields: fields}).sheets;
エラー ReferenceError: Sheets is not defined
該当のソースコード
function updatePivotTable(pivotTableSheetName) { var ss = SpreadsheetApp.getActiveSpreadsheet(); var pivotTableSheetId = ss.getSheetByName('ピボット テーブル 1').getSheetId(); var fields = "sheets(properties.sheetId,data.rowData.values.pivotTable)"; var sheets = Sheets.Spreadsheets.get(ss.getId(), {fields: fields}).sheets; for (var i in sheets) { if (sheets[i].properties.sheetId == pivotTableSheetId) { var pivotTableParams = sheets[i].data[0].rowData[0].values[0].pivotTable; break; } } var sourceSheetId = pivotTableParams.source.sheetId || 0; for(var [i, sht] in ss.getSheets()) { if(sourceSheetId == sht.getSheetId()) { var sourceSheet = sht; } } // ソース範囲を更新します pivotTableParams.source.endRowIndex = sourceSheet.getLastRow(); // 更新されたパラメータを送り返します var request = { "updateCells": { "rows": { "values": [{ "pivotTable": pivotTableParams }] }, "start": { "sheetId": pivotTableSheetId }, "fields": "pivotTable" } }; Sheets.Spreadsheets.batchUpdate({'requests': [request]}, ss.getId()); }
試したこと
下記の方法などを取りましたが、エラーが出てしまい、私の力では解決できませんでした。
var sheet = spreadsheet.getSheetByName(name);
補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/28 07:00