如何将OnEdit(e)限制在一定范围内?

时间:2019-04-05 20:18:30

标签: google-apps-script google-sheets

我正在尝试根据J(10)列对工作表的范围进行排序,但是我只希望在N9和AG190之间的单元格被编辑时对其进行排序。

当前,任何地方的任何编辑都会触发排序,而这并不是bueno。

我已经整理了以下内容,但实际上我不知道自己在做什么

function myFunction() {

}

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

  var columnToSortBy = 10;
  var startColumn = 14;
  var endColumn = 33;
  var tableRange = "a9:cq188";

  if((editedCell.getColumn() <= endColumn || editedCell.getColumn() >= startColumn)) {   
    var range = sheet.getRange(tableRange);
   range.sort( { column : columnToSortBy, ascending: false } );
  }
}

第一次在这里发布,谢谢您的帮助

1 个答案:

答案 0 :(得分:1)

尝试一下:

function onEdit(e){
  //if(e.range.getSheet().getName()!='DesiredSheet Name')return;//you might want to put something like this in here to limit its operation to a single sheet
  if(e.range.columnStart>=14 && e.range.columnStart<=33 && e.range.rowStart>=9 & e.range.rowStart<=190) {   //N9 and AG190
    e.range.getSheet().getRange("A9:CQ188").sort({column:10,ascending:false});
  }
}