应用于工作表中的特定选项卡

cro*_*ats 1 google-sheets google-apps-script

我的电子表格中有 9 个选项卡,并且只想将排序脚本应用于其中 6 个选项卡。我不知道如何实现这一点。

///////Auto Sort Phase Sheets
  //get sheet
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ['Phase 1','Phase 2', 'Phase 3', 'Phase 4', 'Phase 5', 'Phase 6']; 
  //get active cell
  var editedCell = sheet.getActiveCell();
  //get range
  var range = sheet.getRange("A2:Z");
  //sort by: status, priority, estimated time
  range.sort([{column: 2, ascending: true},  {column: 1, ascending: true}, {column:3}]);
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

类型错误:在对象阶段 1、阶段 2、阶段 3、阶段 4、阶段 5、阶段 6 中找不到函数 getActiveCell

当我删除“getActiveCell”时,出现此错误: TypeError: Cannot find function getRange in object Phase 1,Phase 2,Phase 3,Phase 4,Phase 5,Phase 6.

当我删除“getRange”时,脚本什么也不做。

小智 5

我认为主要问题是您需要循环遍历“sheet”数组中给出的指定工作表名称列表。除此之外,您共享的代码应该嵌入到函数中才能运行(顺便说一句,我删除了editedCell变量,因为它是多余的):

///////Auto Sort Phase Sheets
function sortSheets(){
  //get sheet
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  //Specify sheets to be sorted
  var sheet_name = ['Phase 1','Phase 2', 'Phase 3', 'Phase 4', 'Phase 5', 'Phase 6']; 
  for (s=0; s<sheet_name.length; s++) {
    var sheet = ss.getSheetByName(sheet_name[s]);
    //get range
    var range = sheet.getRange("A2:Z");
    //sort by: status, priority, estimated time
    range.sort([{column: 2, ascending: true},  {column: 1, ascending: true}, {column:3}]);
  }
}
Run Code Online (Sandbox Code Playgroud)

这是我测试的工作表: https://docs.google.com/spreadsheets/d/1VyhzrYwOWgGWszrRoUrQU2ECGqwN_lfb99fqw7x9P1k/edit#gid=0