サービスエラー: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"を指定してもエラーは出なかった。

どうやら、あくまでもスクリプトを設定した段階の範囲指定値が、行の削除によって行がみたなくなってしまう場合に発生する。のかも。



コメント

このブログの人気の投稿

eclipse 改行後のインデントを無効にする

Jquery datetimepicker 日本語にならない原因