5

Robin と Lucy という 2 つのシートを含む Google スプレッドシートがあります。列Aにデータを追加するたびにシート上のデータをソートするスクリプトを作成/発見/マングルしました

function onEdit(event){

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

  var columnToSortBy = 1;
  var tableRange = "a2:I30";
    if(editedCell.getColumn() == columnToSortBy){   
   var range = sheet.getRange(tableRange);
   range.sort( { column : columnToSortBy } );
  }
}

このスクリプトはうまく機能しますが、最初のシートであるロビンにのみ適用したいと考えています。2 番目のシート、Lucy のデータは同じではないので、この問題を理解したら、別の範囲の別のスクリプトを作成します。

getSheetByName("Robin") を使用する必要があると思いますが、動作させることができないようです。前もって感謝します

4

3 に答える 3

7

関数全体を次のような状態にすることができます:

function onEdit(event){

  var sheet = event.source.getActiveSheet();
  if(sheet.getName()=='Robin'){
  var editedCell = sheet.getActiveCell();

  var columnToSortBy = 1;
  var tableRange = "a2:I30";
    if(editedCell.getColumn() == columnToSortBy){   
   var range = sheet.getRange(tableRange);
   range.sort( { column : columnToSortBy } );
  }
}
}

または、以下のように条件が false の場合にも返すことができます

...
  var sheet = event.source.getActiveSheet();
  if(sheet.getName()!='Robin'){return}
...

どちらの方法も同じように機能します。

于 2013-02-13T08:02:44.270 に答える