按价值排列表格Google表格

时间:2018-03-13 22:15:49

标签: google-apps-script google-sheets

是否有重新排序Google表格标签的功能?我们希望将它们安排在每个上面获得的特定值上,

  /** ... */
  var ss = SpreadsheetApp.getActiveSpreadsheet();

  // Store all the worksheets in this array
  var sheetNameArray = [];
  var sheets = ss.getSheets();
  for (var i = 0; i < sheets.length; i++) {
    z = sheets[i].getRange(3, 5);
    z = z.getValue();

    sheetNameArray.push(z);
  }
  /** Use value in array to reorder sheets */

1 个答案:

答案 0 :(得分:1)

您想使用sheetNameArray中的工作表名称对打开的电子表格中的工作表重新排序。如果我的理解是正确的,那么这个示例脚本怎么样?此示例脚本使用moveActiveSheet()在打开的电子表格中重新排序工作表。

示例脚本:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheetNameArray = [];
var sheets = ss.getSheets();
for (var i = 0; i < sheets.length; i++) {
  z = sheets[i].getRange(3, 5);
  z = z.getValue();
  sheetNameArray.push(z);
}
sheetNameArray.forEach(function(e, i){
  ss.setActiveSheet(ss.getSheetByName(e));
  ss.moveActiveSheet(i+1);
});

注意:

  • 假设您的脚本可以将工作表名称检索到sheetNameArray
  • sheetNameArray中的工作表名称必须包含在已打开的电子表格中。
  • sheetNameArray的长度必须与var sheets = ss.getSheets();的长度相同。

参考:

如果我误解了你的问题,我很抱歉。