Google apps script 尝试在不选择工作表的情况下对两列进行排序

Google apps script 尝试在不选择工作表的情况下对两列进行排序,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我正在尝试从一个不总是活动的工作表中排序一个范围。但它总是对活动工作表的等效范围进行排序 function sortColumns() { var ss = SpreadsheetApp.getActiveSpreadsheet() var sheet = ss.getSheetByName('Sheet1'); var range = sheet.getRange('B2:C3'); range.sort({column: 2, ascending: true}); } 我原

我正在尝试从一个不总是活动的工作表中排序一个范围。但它总是对活动工作表的等效范围进行排序

function sortColumns() {
  var ss = SpreadsheetApp.getActiveSpreadsheet()
  var sheet = ss.getSheetByName('Sheet1');
  var range = sheet.getRange('B2:C3');
  range.sort({column: 2, ascending: true});
}

我原以为此代码将始终对工作表A1中的选定范围进行排序,但它将对活动工作表的选定范围进行排序。

我认为这就是您想要的:

function sortColumns() {
  var ss=SpreadsheetApp.getActive()
  var sh=ss.getSheetByName('A1');
  var range = sh.getRange(ss.getActiveSheet().getDataRange().getA1Notation());
  range.sort({column: 2, ascending: true});
}
但我不确定

重新阅读后,我意识到您想要的是所选范围。选定范围仅适用于激活图纸

function sortColumns() {
  var ss = SpreadsheetApp.getActiveSpreadsheet()
  var sheet = ss.getSheetByName('Sheet1');
  var range = sheet.getRange('B2:C3');
  range.sort({column: 2, ascending: true});
}

它显示与其他脚本相同的错误。出于某种原因,它试图对活动工作表而不是工作表A1进行排序(我刚刚编辑了原始问题,将其命名为Sheet1而不是A1)。因此,我无法对非活动工作表的选定范围进行排序?事实上,它被选中意味着它处于活动状态,如果该范围被选中,它将处于活动状态,这将使工作表处于活动状态(可以使用获取该范围)。如果要使用非活动范围,必须使用常规的
getRange()
方法获取它们。