Google 在 sheet 选项卡之一中执行排序时,应用程序脚本 onchange(e) 触发器没有给我正确的活动 Sheet 名称

Google apps script onchange(e) trigger does not give me correct Active Sheet name when Sorting is performed in one of the sheet tab

function onChange(e){
  //sorting in a sheet triggers onChange(e) with e.changeType=='OTHER'
  if(e.changeType()=='OTHER') {
    //Here e.source.getActiveSheet() gives me wrong active sheet.
    //I need to get the activesheet in which sorting is performed
 }

您必须限制希望它在哪些页面上执行。

function onMyChange(e) {
  const sh=e.source.getActiveSheet();
  if(sh.getName()=='Your desired sheet name' && e.changeType=="other" ) {
    //put your code here for that page
    //the rest of the pages will not run this code
  }
}

事件对象实际如下所示:

{"authMode":"FULL","changeType":"REMOVE_ROW","source":{},"triggerUid":"a string","user":{"email":"a string","nickname":"a string"}}

这似乎是一个错误:

如果 onChange trigger is fired by the user by sorting & filtering data (creating a filter, modifying it, sorting, etc.), SpreadsheetApp.getActiveSheet() and Spreadsheet.getActiveSheet() always return the first sheet in the spreadsheet when called in an onChange trigger 即使不是活动 sheet。

其他changeTypesREMOVE_GRIDINSERT_ROW等)return活跃sheet.

我在问题跟踪器中提交了一个错误:

受此影响的任何人,请考虑 subscribing to it by starring it 以跟踪它并帮助确定它的优先级。