投稿

1月, 2016の投稿を表示しています

サービスエラー:Spreadsheets(service error:Spreadsheets)の原因

例えば、セルを編集した際に自動的に並べ替えたいとすると、以下のようなscriptになると思います。

/**
 * Automatically sorts the 1st column (not the header row) Ascending.
 */
function onEdit(event){

  var sheet = event.source.getActiveSheet();
  var editedCell = sheet.getActiveCell();

  var columnToSortBy = 1; // column A
  var tableRange = "A1:G1000"; // What to sort.

  if(editedCell.getColumn() == columnToSortBy){
    var range = sheet.getRange(tableRange);
    range.sort( { column : columnToSortBy, ascending: true } );
  }
}
onEdit()は、セルを編集した際に実行される。
実行されるscriptは、範囲(A1~G1000)をカラムAを基に昇順で並び替えるというもの。
これで、問題なく動作します。

サービスエラー:Spreadsheetsがでて動かない原因
原因はいろいろあるようだが、私の場合の原因は”行の削除”を行ったことだった。
以下のような場合には、エラーが出るようです。
テーブル内に行が1100行あった場合、  ↓ 行を101行削除する  ↓ 結果、テーブル内に表示されている行が999行になる  ↓ tableRange = "A1:G1000"を指定しても、現在のテーブル内にあるのは999行ということで『サービスエラー:Spreadsheets』が発生する模様。

なもんで、範囲を現在ある行数以内で修正したところ、エラーは出なくなった。
エラーが出ないケース 試しに、100行しか表示されていないテーブルに新たにスクリプトを作成しtableRange = "A1:G1000"を指定してもエラーは出なかった。
どうやら、あくまでもスクリプトを設定した段階の範囲指定値…