一つのスプレッドシートの一つのシート内に複数の抽出データエディタを置き、
そのシート内でそれらの抽出データエディタのデータを集計した表を作成しています。
この抽出データエディタを毎日自動更新したく、「マクロを記録」からスクリプトを作成しました。(下記)
しかし、実際にそのままスクリプトを実行すると
Exception: Unexpected error while getting the method or property refreshData on object SpreadsheetApp.DataSourceTable.
とエラーメッセージが出ます。
refreshDataをSpreadsheetApp.DataSourceTableに行う際に予期せぬエラーが発生したとのことですが、解決策が分かりません。
・更新オプションから自動更新も可能ですが、スプレッドシート内には更新したくない抽出データエディタもあるため、一括更新しかできないこの手法は出来ない認識です。
・抽出データエディタが同一シート内にあることが原因だとは思うので、最悪抽出データエディタを別シートにそれぞれ移せばいいのだと思われますが、「マクロを記録」で作成したスクリプトが動かない原因と解決策を知りたいです。
知見をお持ちの方、ご教授いただけますと幸いです。
GAS
1function test() { 2 var spreadsheet = SpreadsheetApp.getActive(); 3 spreadsheet.getRange('BO171').activate(); 4 SpreadsheetApp.enableAllDataSourcesExecution(); 5 spreadsheet.getCurrentCell().getDataSourceTables()[0].refreshData(); 6 spreadsheet.getRange('BJ172').activate(); 7 spreadsheet.getCurrentCell().getDataSourceTables()[0].refreshData(); 8 spreadsheet.getRange('BV172').activate(); 9 spreadsheet.getCurrentCell().getDataSourceTables()[0].refreshData(); 10};
追記
・1ページに複数あった抽出データエディタを独立させて下記実行しても同じエラーが発生しました。
GAS
1function test() { 2 var spreadsheet = SpreadsheetApp.getActive(); 3 spreadsheet.getRange('A1').activate(); 4 SpreadsheetApp.enableAllDataSourcesExecution(); 5spreadsheet.setActiveSheet(spreadsheet.getSheetByName('sheet1'), true); 6 spreadsheet.getCurrentCell().getDataSourceTables()[0].refreshData(); 7};
あなたの回答
tips
プレビュー