Google 脚本:无法使用 getRangeByName 对范围进行排序

Google Script: Can not sort a range with getRangeByName

我需要按字母顺序排列名称范围内的列表,但由于某种原因在某些时候失败并在 var tmp_range = raw_range.sort( 1 );

行中给我一个 "The cell reference is out of range."

第一次调用中的奇怪想法似乎有效,但第二次调用(使用其他范围名称)失败了。

function getValuesOfRange( range_name ){
  var raw_range = SpreadsheetApp.getActiveSpreadsheet().getRangeByName( range_name );
  Logger.log( raw_range );
  if ( raw_range != null ){
    Logger.log( range_name );
    var tmp_range = raw_range.sort( 1 );
  }
  ...
}

最可能的原因是您在参数中提供了错误的索引。排序函数采用不同类型的参数。在这里查看

https://developers.google.com/apps-script/reference/spreadsheet/range#sortsortspecobj

// Sorts by the values in the first column (A)
 range.sort(1);

例如,如果您的命名范围来自 'Sheet1'!D1:D9 排序应该像 range.sort(4);

因此,在您的情况下,将 raw_range.sort( 1 ) 更改为 raw_range.sort( raw_range.getColumn())